无法在请求对象中设置生成的access_token

时间:2019-07-18 10:44:21

标签: jwt nestjs

我正在借助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对象吗?

1 个答案:

答案 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->
}

您可以在此filepassport-jwt的源代码中找到它。