加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

AngularJS – 重定向到登录页面和会话ID的持久性

发布时间:2020-12-17 07:46:33 所属栏目:安全 来源:网络整理
导读:我正在寻找一种方法来做这两件事情,首先我想将用户重定向到登录页面,如果没有发现SessionID,第二个我想听到您对持久化内存中的会话ID(无cookie)的意见. 我想出的重定向解决方案是: 1 – 创建一个名为OAuth的服务,将检查SessionID是否存在,如果不存在,则重定
我正在寻找一种方法来做这两件事情,首先我想将用户重定向到登录页面,如果没有发现SessionID,第二个我想听到您对持久化内存中的会话ID(无cookie)的意见.

我想出的重定向解决方案是:

1 – 创建一个名为OAuth的服务,将检查SessionID是否存在,如果不存在,则重定向到登录页面,该服务还负责登录和注销方法.

app.factory('OAuth',['$http',function ($http) {

    var _SessionID = '';

    return { 
        login: function () {
            //Do login ans store sessionID in var _SessionID
        },logout: function () {
            //Do logout
        },isLoggedIn: function () {
            if(_SessionID) {
                return true;
            }
            //redirect to login page if false
        }
    };

}]);

2 – 在每个控制器中注入新的OAuth服务,并检查用户是否已登录

app.controller('myCtrl',['$scope','OAuth',function ($scope,OAuth) {

    //check if user is logged
    OAuth.isLoggedIn();

}]);

问题:

1 – 在所有的控制器中都会调用isLoggedIn()方法,所以我想知道是否有办法,而无需注入服务并在每个控制器中调用它.

2 – 而不是有一个cookie存储sessionID,我想保存在OAuth的_SessionID变量,并且每个请求发送到服务器.这是可行/安全的方法吗?你能给我一些想法吗?

谢谢!

我将从 here开始,Witold创建了这个酷的拦截器,可以解决http响应.我使用它,它真的很有帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读