【问题标题】:where to store information after the authentication using JWT使用 JWT 进行身份验证后存储信息的位置
【发布时间】:2018-11-01 01:43:21
【问题描述】:

我是身份验证方面的新手。我有一个应用程序,登录后,向服务器发送凭据,服务器生成JWT 令牌并将其发送回客户端(移动设备)。

这是我的问题:JWT 可用后,我应该在哪里存储关于即将到来的请求的信息?例如,如果我想发送POST 请求,我有两种方法:

  1. 在请求的body 上存储所需信息
  2. 在使用JSON 格式将信息编码为Base64 之后,然后将其存储在JWTpayload

也许我错了,这些不是解决方案。 我只是想知道这项工作的最佳(标准)方法是什么?

【问题讨论】:

  • JWT 是一个身份验证/授权令牌,如果您想为您执行此操作,您需要将其传回服务器。您(客户端应用程序)无法修改它,您只需将其按原样包含在您的请求中。这些请求需要的其他信息可以去往他们本来应该去的地方(URL、查询参数、请求正文等)。
  • @Thilo 感谢您的快速反馈,我想知道除非通过授权标头发送信息,否则会有安全问题

标签: authentication jwt


【解决方案1】:

Jwt 令牌将针对每个请求来回发送,如 cmets 中所述,您无法修改它们。

令牌可以作为授权标头中的不记名令牌发送。

Authorization : Bearer <token>

对于您正在执行的 API 请求的请求参数,您可以将它们作为帖子请求正文的一部分发送。

另外,您的请求仍然容易受到 CSRF 的攻击。您可以使用 csrf 任何库来生成 csrf 令牌。这将为您的应用程序提供更好的安全性。

【讨论】:

  • 谢谢!是否有必要使用您上面提到的格式发送令牌?我的意思是我们可以这样发送吗:授权:(没有 Bearer)
  • 是jwt自己提出的标准。 Bearer 是授权/身份验证令牌的模式类型。我建议遵循答案中提到的那个。有关更多见解,请参阅以下内容:google.co.in/url?sa=t&source=web&rct=j&url=https://…
【解决方案2】:

客户端向服务器发出的每个请求都应将 JWT 令牌作为不记名令牌发送。

它通常使用 Bearer 模式添加到 Authorization 标头中。

Authorization: Bearer <token>

有关 JWT 令牌的更详细说明,请参阅https://jwt.io/introduction/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-16
    • 2016-04-07
    • 2020-01-03
    • 1970-01-01
    • 2023-03-27
    • 2021-05-29
    • 2017-07-30
    • 2018-06-30
    相关资源
    最近更新 更多