(基于令牌的A& A):在每次请求时将令牌发送到服务器

时间:2014-05-26 12:00:40

标签: node.js angularjs authentication authorization ejs

我正在调试node.js + angularJS中基于令牌的A& A模块。在此方法中,服务器对用户进行身份验证并使用令牌进行响应。此令牌保存在本地内存(客户端)中,用户使用附加的代码在每次请求时将令牌发送到服务器。

然而,我面临一个奇怪的情况:

  1. 我登录www.test.com
  2. 然后我可以看到我的仪表板:www.test.com/dashboard
  3. 接下来,我从我的信息中心退出
  4. 之后,我打开一个新标签并输入" www.test.com/dashboard"在浏览器的地址栏中。我希望用户直接进入登录页面。但是,在1-2秒内,我会看到我的仪表板(例如www.test.com/dashboard),然后进入登录页面!我不明白为什么它显示我的仪表板1-2秒!!!
  5. 我想原因是开发人员没有将令牌附加到GET请求!任何删除问题的建议? 顺便说一句,哪里是最好的位置(对于angularJS和EJS)保存令牌以便能够将所有请求发送到服务器(ajax,GET,...,websocket)?

        app.factory('AuthInterceptor', function ($window, $q) {
        return {
            request: function(config) {
                config.headers = config.headers || {};
                if ($window.sessionStorage.getItem('token')) {
                    config.headers.Authorization = 'Bearer ' + $window.sessionStorage.getItem('token');
                }
                return config || $q.when(config);
            },
            response: function(response) {
                if (response.status === 401) {
                    // TODO: Redirect user to login page.
                }
                return response || $q.when(response);
            }
        };
    });
    
    // Register the previously created AuthInterceptor.
    app.config(function ($httpProvider) {
        $httpProvider.interceptors.push('AuthInterceptor');
    

0 个答案:

没有答案