gpt4 book ai didi

rest - 服务器如何知道不记名 token 是否有效而不将其存储在磁盘或内存中

转载 作者:行者123 更新时间:2023-12-01 12:22:50 25 4
gpt4 key购买 nike

所以我刚刚使用 OWIN 在 Web API 应用程序中实现了基于 token 的身份验证,并且我能够理解它是如何工作的概念(至少在表面上很好)。

我无法理解的是服务器如何验证生成的不记名 token 而不将其存储在磁盘或内存上。我的意思是确定到期日期可能在 token 本身中加密,但这仅适用于已经到期的情况。那么服务器是如何做到的(在高层次上)?

更新:

好的,我可以看到声明存储在 token 中。所以在某种程度上,服务器在身份验证过程中仍在检查数据库是否正确?否则让我们假设我是服务器并且我能够将 token 解密到这个对象:

{
"iss": "thesite.com",
"exp": 1300819380,
"name": "Chris Sevilleja",
"admin": true
}

所以现在的问题是,我(服务器)是否能够将 token 解密为键值对(检查是否存在诸如“iss”、“exp”之类的特定键并检查诸如“admin”键之类的值)必须是真的)意味着我将授权网络请求?

最佳答案

JWT token 由用点(.)分隔的三部分组成。

  • 第一部分是标题。
  • 第二部分是有效载荷
  • 第三部分是签名( 说 s0 )
    JWT Format
  • 签名是使用 Header 和 Payload 创建的。

  • 当服务器收到 JWT token 时,它会从传入的 header 和有效负载创建临时签名(比如 s1)。
  • 如果 s0 和 s1 签名相同,则 token 有效。
  • token 还包含用于验证 token 的声明。例如 exp 声明包含 unix 纪元时间,在此之后 token 被视为无效。
  • 关于rest - 服务器如何知道不记名 token 是否有效而不将其存储在磁盘或内存中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42546893/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com