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

Posted

技术标签:

【中文标题】使用节点 js 获取授权标头令牌【英文标题】:get authorization header token with node js 【发布时间】:2017-11-06 02:41:12 【问题描述】:

我想在后端节点js中获取token。

首先,我从 jwt 获取令牌并存储在本地存储中,但是当我想使用此令牌发送请求时,我无法在服务器端获取它。

客户端:

        function list_users()
            url= "http://localhost:8181/users";
            var tok = window.localStorage.getItem('token');
            if (tok) 
        /*
        $.ajaxSetup(
                    headers: 
                        'x-access-token': tok
                    
                );
        */

                $.ajax(
                headers: 'Authorization': tok,
                dataType: "application/json; charset=utf-8",
                url,
                type: 'GET',
                dataType: 'json',
                success: function (json) 
    alert("done");
    
)


服务器端:

router.use(function(req, res, next) 

res.header("Access-Control-Allow-Origin", "*");
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');  
res.header("Access-Control-Allow-Headers", "Authorization");

console.log(req.headers['authorization']);
...


但是

req.headers['授权']

打印

“未定义”

请提供任何解决方案。

【问题讨论】:

您是否检查过请求以确认令牌是否已发送到服务器? 不,还没有,我该怎么做? developer.chrome.com/devtools @CássioMazzochiMolin,不,请求不将令牌发送到服务器,但请求标头设置为“授权”。看看这个link 【参考方案1】:

试试这样的:

.....
.....

$.ajax(
         headers: 'Authorization': 'Bearer '+tok,
......
......

【讨论】:

【参考方案2】:

这样使用:

req.header('authorization');

【讨论】:

以上是关于使用节点 js 获取授权标头令牌的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Angular 中从服务器获取带有 jwt 令牌的响应标头

Angular 5:从拦截器中的 http 响应标头获取授权

Angular 2:获取授权标头

获取请求未通过授权标头[关闭]

获取 API:无法使用 Chrome 对请求标头添加授权

使用授权承载请求时在 Firebase 函数中获取令牌