我正在借助JWT令牌和@ nestjs / passport库对用户进行身份验证。我能够成功地生成并返回访问令牌,但仍停留在如何在req对象中进行设置。这样我就可以验证其他api路由,直到用户注销
下面的代码显示了我如何生成access_token并返回到调用点
let payload = { username: user.email, sub: user.id }
const accessToken = this.jwtService.sign(payload);
return {
expires_in: 3600,
access_token: accessToken,
status: 200
}
我正确获取了access_token。我使用https://jwt.io/调试器验证了生成的access_token,结果正确。 有人可以帮助我使用access_token设置req对象吗?
答案 0 :(得分:1)
您可以通过多种方式在请求中发送JWT令牌。如果您已遵循本教程:https://docs.nestjs.com/techniques/authentication,则说明您正在将passport-jwt库用于JWT。一种方法是通过标头,如果您不设置身份验证模式,它将是这种方式:
Authorization: JWT <-HERE YOU SHOULD INSERT TOKEN->
如果将authSchema
设置为bearer
,则可以使用以下标头:
Authorization: BEARER <-HERE YOU SHOULD INSERT TOKEN->
除了,您可以像这样将JWT放入URL:
https://example.com/me?auth_token=<-HERE YOU SHOULD INSERT TOKEN->
或者在您要发送的带有名为auth_token
的属性的对象主体中:
https://example.com/me
Body:
{
auth_token: <-HERE YOU SHOULD INSERT TOKEN->
}
您可以在此file的passport-jwt
的源代码中找到它。