无法从服务器端的请求中获取令牌

Posted

技术标签:

【中文标题】无法从服务器端的请求中获取令牌【英文标题】:Cant get the token from request at server side 【发布时间】:2017-12-21 19:09:45 【问题描述】:

我指的是this 示例 我试图通过 $localStorage 从前端设置标头上的令牌。我已经在 $localStorage 验证了令牌。

$httpProvider.interceptors.push(['$q', '$location', '$localStorage', function($q, $location, $localStorage) 
        return 
            'request': function (config) 
                config.headers = config.headers || ;
                if ($localStorage.token) 
                    config.headers.Authorization = 'Bearer ' + $localStorage.token;
                
                return config;
            ,
            'responseError': function(response) 
                if(response.status === 401 || response.status === 403) 
                    $location.path('/signin');
                
                return $q.reject(response);
            
        ;
    ]);

在服务器端,我试图在路由中间件中获取令牌以进行身份​​验证。

    var api = express.Router();
    api.use(function(req, res, next) 
        res.setHeader('Access-Control-Allow-Origin', '*');
        res.setHeader('Access-Control-Allow-Methods', 'GET, POST');
        res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type, Authorization');
        next();
    );

api.use(function(req, res, next)     
    var bearerToken;
    var bearerHeader = req.headers["authorization"];

     

bearerHeader 总是不确定。

【问题讨论】:

你有没有在客户端调试过请求,看看localStorage.token是否不为空,是否真的发送到服务器? 是的,有效并发送到服务器。 【参考方案1】:

试试

var bearerHeader = req.headers["Authorization"];

大写A而不是小A

【讨论】:

以上是关于无法从服务器端的请求中获取令牌的主要内容,如果未能解决你的问题,请参考以下文章

我的 Angular 4 应用程序无法向 Spring Boot Server 请求令牌

使用在服务器端获取的 IBM Bluemix 音调分析器令牌时客户端出错

使用节点 js 获取授权标头令牌

如何在开发过程中获取客户端的ip呢?

SSRF漏洞简单分析

改造无法将新令牌设置为请求标头