所以我只是在使用OWIN的Web API应用程序中实现基于令牌的身份验证,我能够理解它的工作原理(至少在表面上)。
我无法理解的是服务器如何验证生成的承载令牌而不将其存储在磁盘或内存中。我的意思是确定到期日期可能在令牌本身中加密,但只有在它已经过期时才适用。那么服务器是如何做到的(在高层次上)?
更新
好的,我可以看到声明存储在令牌中。在某种程度上,服务器仍在检查身份验证期间的数据库是否正确?否则,我们假设我是服务器,并且我能够将令牌解密到此对象:
{
"iss": "thesite.com",
"exp": 1300819380,
"name": "Chris Sevilleja",
"admin": true
}
所以现在的问题是我(服务器)能够将令牌解密成键值对(检查是否存在特定键,如'iss','exp'并检查像''这样的值) admin'key必须为true)意味着我将授权Web请求?
答案 0 :(得分:2)
JWT令牌由三个部分组成,用点(。)分隔。
当服务器收到JWT令牌时,它会从传入的头和有效负载创建临时签名(比如s1)。
答案 1 :(得分:0)
令牌使用JWT格式(JSON Web令牌)进行编码。这在标准(https://tools.ietf.org/html/rfc7519)中有详细描述,您将看到该令牌包含一定数量的声明,其中包括截止日期(exp)。