【问题标题】:Not able to set generated access_token in request object无法在请求对象中设置生成的 access_token
【发布时间】:2019-07-18 20:38:43
【问题描述】:

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

【问题讨论】:

    标签: jwt nestjs


    【解决方案1】:

    您可以通过多种方式在请求中发送 JWT 令牌。如果您已遵循本教程:https://docs.nestjs.com/techniques/authentication,则您正在为 JWT 使用 passport-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的源代码中找到这个。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-12
      • 1970-01-01
      • 2013-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多