Jwt JSON Web令牌:刷新和访问

Jwt JSON Web令牌:刷新和访问,jwt,Jwt,我正在编写一个客户端应用程序来访问我用PHP编写的一些服务器端点。我正在使用JWT进行身份验证,并且已经成功地获得了一个工作系统,人们可以使用其用户名/密码登录以交换JWT,然后可以使用JWT访问端点,直到JWT过期 但现在我正在学习JWT刷新令牌(RT)和JWT访问令牌(AT) 从我所阅读的内容来看,RT过期时间应该很长,以避免烦人的重复登录,而AT过期时间应该很短,因此如果拦截AT,它很可能无法使用 但是,我有点困惑,因为: 当AT过期时,客户端必须向服务器发送RT以获取有效的AT备份以供使

我正在编写一个客户端应用程序来访问我用PHP编写的一些服务器端点。我正在使用JWT进行身份验证,并且已经成功地获得了一个工作系统,人们可以使用其用户名/密码登录以交换JWT,然后可以使用JWT访问端点,直到JWT过期

但现在我正在学习JWT刷新令牌(RT)和JWT访问令牌(AT)

从我所阅读的内容来看,RT过期时间应该很长,以避免烦人的重复登录,而AT过期时间应该很短,因此如果拦截AT,它很可能无法使用

但是,我有点困惑,因为:

当AT过期时,客户端必须向服务器发送RT以获取有效的AT备份以供使用

因此RT被传输,可能被截获,或者可能在一些日志中找到。所以这不是否定了安全性的好处吗。我们仍然需要传输RT以获得AT,那么使用RT和AT比只使用AT进行身份验证更安全的是什么呢


目前我认为At应该只持续30秒左右,而RT应该持续一个小时。也许我的时间表是错误的,我应该更多地考虑RT的最后一周,而AT的最后60分钟或其他什么?

关于安全性:你是对的,只使用一个令牌获取另一个令牌没有多大意义,但是JWT认证只应该通过HTTPS传输,并且避免中间人攻击,CORS和其他手段(如客户端指纹)应该被使用。RT的有效时间必须仅在AT过期时开始。如果您不必是无状态的,您可以将生成的jwt保存在服务器上,并在其到期之前不生成另一个jwt等。
时间刻度完全取决于应用程序。如果它是一个API向世界开放的金融系统,那么时间对于AT来说应该非常短,对于RT来说应该不会太长,但是如果它是一个没有敏感数据的社区站点,RT应该非常长,因为方便性比最高安全性更重要。我希望它有帮助。关于安全性,

:你是对的,只使用一个令牌来获取另一个令牌是没有多大意义的,但是JWT认证只应该通过HTTPS传输,并且避免中间人攻击,CORS和其他手段(如客户端指纹)应该被使用。RT的有效时间必须仅在AT过期时开始。如果您不必是无状态的,您可以将生成的jwt保存在服务器上,并在其到期之前不生成另一个jwt等。
时间刻度完全取决于应用程序。如果它是一个API向世界开放的金融系统,那么时间对于AT来说应该非常短,对于RT来说应该不会太长,但是如果它是一个没有敏感数据的社区站点,RT应该非常长,因为方便性比最高安全性更重要。我希望这会有帮助。

是的,谢谢,这确实有点帮助。但是,当您说“RT的有效时间必须仅在AT过期时开始”时,RT存储在客户端上,以便发送到服务器进行AT。我无法更改客户端中RT的开始/结束时间。只有服务器可以这样做?或者,当我将RT传递回服务器以请求AT时,您的意思是RT的开始时间会被更新以反映AT的结束时间吗?因为服务器在生成AT时也会在同一请求中生成RT,所以服务器知道如何设置RT,然后将两者都放入身份验证确认响应中。哦,我明白了,所以它有点像一个时间链,比如在[0,10],RT[10100],括号中的数字表示有效的开始/结束时间。这是有道理的。是的,你可以使用一个注册的“nbf”索赔。是的“注意之前”。我目前是无状态的,但是我可以很容易地变成有状态的,因为我可以将令牌数据添加到用户表中……是的,谢谢,这确实有点帮助。但是,当您说“RT的有效时间必须仅在AT过期时开始”时,RT存储在客户端上,以便发送到服务器进行AT。我无法更改客户端中RT的开始/结束时间。只有服务器可以这样做?或者,当我将RT传递回服务器以请求AT时,您的意思是RT的开始时间会被更新以反映AT的结束时间吗?因为服务器在生成AT时也会在同一请求中生成RT,所以服务器知道如何设置RT,然后将两者都放入身份验证确认响应中。哦,我明白了,所以它有点像一个时间链,比如在[0,10],RT[10100],括号中的数字表示有效的开始/结束时间。这是有道理的。是的,你可以使用一个注册的“nbf”索赔。是的“注意之前”。我目前是无状态的,但是我可以很容易地变成有状态的,因为我可以将令牌数据添加到Users表中……应该注意,当使用RT发出新的AT时,授权服务器可以撤销RT并发出新的RT。新的AT和RT都传输到客户端。此行为由授权服务器自行决定,主要取决于其安全策略。应注意,当使用RT发出新at时,授权服务器可以撤销RT并发出新的RT。新的AT和RT都传输到客户端。此行为由授权服务器自行决定,主要取决于其安全策略。