AngularJS - 如何在 $localStorage 中存储 JWT 令牌

AngularJS - How to store JWT token in $localStorage

我有这个服务调用 apiService,在那里我可以获得在服务器端生成的令牌。

angular.module('miniMynd')
    .service('apiService', function ($http) {
       return {
         loginUser: function(user){
           $http.post("http://localhost:3010/api/login", user).then(function(response){
             console.log(response.data) * I get the token* 
           })
         },
       }
    });

我的 loginCtrl

$scope.login = function(){
  $apiService.loginUser($scope.credentials); * I pass the crendentials to my function on the client side and i receive a token in the service above*
}

我已尝试将令牌放入我的 $localStorage 中,但我遇到了注入错误,因为只有提供程序可注入配置块。

您不需要在应用程序中定义任何模块或注入任何其他模块。 在你的应用程序中注入 $window 然后你可以像这样访问本地存储模块

angular.module('miniMynd', [])
     .controller('loginCtrl', ['$scope', function ($scope) {
    $apiService.loginUser($scope.credentials);
}]);

然后,

angular.module('miniMynd')
    .service('apiService', function ($http,$window) {
       return {
         loginUser: function(user){
           $http.post("http://localhost:3010/api/login", user).then(function(response){
              $window.localStorage.setItem('token', response.data);
           })
         },
       }
    });

您可以像这样检索 localStorage 值

$window.localStorage.getItem('token');