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

如何开发angularjs拦截器来控制会话

发布时间:2020-12-17 10:23:43 所属栏目:安全 来源:网络整理
导读:我是一名学生,最近在研究angularJS拦截器,并试图开发一个控制会话管理.我是平均堆栈开发的新手,需要帮助. 有没有人有一个angularJS会话管理的工作示例? 非常感谢您的帮助和时间. 如果你想要一个基于令牌的控件,你可以这样做: 你的拦截器: angular.module(
我是一名学生,最近在研究angularJS拦截器,并试图开发一个控制会话管理.我是平均堆栈开发的新手,需要帮助.
有没有人有一个angularJS会话管理的工作示例?

非常感谢您的帮助和时间.

如果你想要一个基于令牌的控件,你可以这样做:

你的拦截器:

angular.module('yourApp').factory('YourHttpInterceptor',['$q','$window',function($q,$window) {
    return {        
        'request': function(config) {
            config.headers = config.headers || {};

            // If you have a token in local storage for example: 
            if ($window.localStorage.token) {
                // Add the token to "Authorization" header in every request
                config.headers.Authorization = 'Bearer ' + $window.localStorage.token;
                // In your server you can check if the token is valid and if it's not,// in responseError method you can take some action
            }


            // Handle something else

            return config;
        },// Optional method
        'requestError': function(rejection) {
            // do something on request error 

            if (canRecover(rejection)) {
                return responSEOrNewPromise
            }
            return $q.reject(rejection);
        },// Optional method        
        'response': function(response) {
            // do something on response success
            return response;
        },// optional method 
        'responseError': function(rejection) {
            // Here you can do something in response error,like handle errors,present error messages etc.

            if(rejection.status === 401) { // Unauthorized 
                // do something
            }

            if (canRecover(rejection)) {
                return responSEOrNewPromise
            }
            return $q.reject(rejection);
        }
    };
}]);

并在您的模块配置中注册拦截器:

angular.module('yourApp',[]).config(function($httpProvider) {
    $httpProvider.interceptors.push('YourHttpInterceptor');
}

正如您在this post中看到的,基于令牌的身份验证遵循以下步骤(几乎总是如此):

>客户端将其凭据(用户名和密码)发送到服务器.>服务器对它们进行身份验证并生成具有过期日期的令牌.>服务器将先前生成的令牌存储在具有用户标识符的某个存储中,例如数据库或内存中的映射.>服务器将生成的令牌发送到客户端.>在每个请求中,客户端将令牌发送到服务器.>服务器在每个请求中从传入请求中提取令牌,使用令牌查找用户标识符以获取用于执行身份验证/授权的用户信息.>如果令牌过期,服务器会生成另一个令牌并将其发送回客户端.

(编辑:李大同)

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

    推荐文章
      热点阅读