在 NodeJS 中设置请求标头
Posted
技术标签:
【中文标题】在 NodeJS 中设置请求标头【英文标题】:Setting a request header in NodeJS 【发布时间】:2020-12-22 15:30:04 【问题描述】:我对 NodeJS 还是很陌生。最近,我一直在尝试创建一个使用 JWT 进行身份验证的登录页面,但我已经遇到同样的错误一周了。
这是我的逻辑:
-
用户注册并通过 JWT 获得访问令牌
const token = jwt.sign(username:this.username, _id: this._id, config.get('private keys));
req.headers.authorization = token;
-
登录时,我这样做了;
const token = req.headers.authorization;
if(!token) return res.send("Access denied");
...
但是,每次我尝试登录时,总是得到拒绝访问,我不知道应该是req.headers.authorization
还是res.headers["authorization"]
,或者问题出在注册页面上。
【问题讨论】:
您需要在用户登录时提供 jwt 令牌。您的客户端应在每次请求时将令牌发送到服务器。它不会被浏览器自动携带。在这里查看问题和我的解决方案***.com/questions/63644149/… 不要在 Express 路由处理函数中使用return
;调用res.send(...)
或类似的就足够了。
【参考方案1】:
您能告诉我们您是如何发送 http 请求的吗?
通常,在使用邮递员时,您应该使用默认登录路由获取令牌,然后将该令牌添加到具有“授权”名称和“令牌”值的新标头中。
【讨论】:
我实际上并没有使用邮递员,在邮递员上一切都可以正常工作。似乎在我的应用程序上,令牌不会转移到下一个请求,我需要以某种方式存储令牌,以便它可以存在以供多个请求使用以上是关于在 NodeJS 中设置请求标头的主要内容,如果未能解决你的问题,请参考以下文章
JavaScript window.location 未在请求标头中设置引用者