每个用户仅发出一次新的JWT令牌以进行匿名身份验证

时间:2015-03-29 23:06:46

标签: angularjs jwt

我想在Angular中使用JWT令牌进行匿名身份验证。我只想向用户发出一个新令牌,如果本地存储中已经存在一个令牌。当我使用下面的代码时,每次刷新页面时都会发出一个新令牌。

有关如何防止这种情况的任何建议吗?

Javascript(客户端):

myApp.constant('API_URL', 'http://localhost:8080');

myApp.factory('UserFactory', function Userfactory($http, API_URL, AuthTokenFactory, $q) {

  return $http.get(API_URL + '/api/authenticate').then(function success(response) {

  AuthTokenFactory.setToken(response.data.token);console.log(response.data);
return response;
});
 });

myApp.factory('AuthTokenFactory', function AuthTokenFactory($window) {
   var store = $window.localStorage;
   var key = 'auth-token';

   return {
     getToken: getToken,
     setToken: setToken
  };

  function getToken() {
  return store.getItem(key);
  }

  function setToken(token) {
  if (token) {
    store.setItem(key, token);
  } else {
    store.removeItem(key);
  }
  }
    });

myApp.factory('AuthInterceptor', function AuthInterceptor(AuthTokenFactory) {

    return {
    request: addToken
     };

   function addToken(config) {
    var token = AuthTokenFactory.getToken();
    if (token) {
      config.headers = config.headers || {};
      config.headers.Authorization = 'Bearer ' + token;
   }
      return config;
    }
   });

0 个答案:

没有答案