使用 angularjs ui 时节点/Angularjs 应用程序未接收 JSON Web 令牌

Posted

技术标签:

【中文标题】使用 angularjs ui 时节点/Angularjs 应用程序未接收 JSON Web 令牌【英文标题】:Node/Angularjs app not receiving JSON Web Token when using angularjs ui 【发布时间】:2018-05-18 16:23:34 【问题描述】:

我正在制作一个通过 JWT 进行身份验证的 MEAN 堆栈应用程序。这是处理令牌认证的脚本:

authenticationService.js

examApp.factory('authenticationService', ['$window', function ($window) 
var authToken = ;
var store = $window.localStorage;
var key = 'auth-token';
authToken.getToken = function () 
    return store.getItem(key);


authToken.setToken = function (token) 
    if (token) 
        store.setItem = (key, token);
     else 
        store.removeItem(key);
    


return authToken;]);

现在,每当我登录我的应用程序时,用户/管理员都可以成功登录,但在控制台中,我没有收到任何显示 token=null 的令牌。

当我通过 POSTMAN 工具登录应用程序并在路由中的token= 部分之后手动复制粘贴令牌时,我可以执行任何任务,但通过 angularjs ui 登录,我得到了

令牌认证失败

任何帮助将不胜感激。

【问题讨论】:

尝试将store.setItem = (key, token); 固定为store.setItem(key, token); 【参考方案1】:

你的代码有问题

authToken.setToken = function (token) 
    if (token) 
        store.setItem = (key, token); // Here is the problem
     else 
        store.removeItem(key);
    

您正在分配store.setItem,而不是您需要执行store.setItem,如下所示

authToken.setToken = function (token) 
    if (token) 
        store.setItem(key, token);
     else 
        store.removeItem(key);
    

【讨论】:

不知道这么简单的事情是怎么过去的。非常感谢您指出这一点。

以上是关于使用 angularjs ui 时节点/Angularjs 应用程序未接收 JSON Web 令牌的主要内容,如果未能解决你的问题,请参考以下文章

AngularJS

使用 webpack 时节点找不到模块“fs”

为啥我使用 nodemon 和 ts-node 时节点检查器不启动?

“npm ERR!errno 3221225477”使用 oracledb 进行查询时节点出错

计算机重新启动时节点版本重置

尝试从 api 获取令牌时节点获取的错误行为