我正在使用laravel passport来生成访问令牌和刷新令牌。
如何以及何时检查令牌是否已过期以及如何申请新令牌?
答案 0 :(得分:0)
如果你有一个JavaScript应用程序,你应该使用OAuth2 Implicit流程,它会为你提供一个访问令牌及其到期时间。因此,不要使用与刷新令牌一起使用的Autorization Code Grant流程 - 它需要一个客户端密钥,您无法在浏览器中保密。
获取访问令牌后,使用window.setTimeout()
安排其刷新。您可以使用请求参数prompt=none
在没有用户交互的情况下刷新它(请参阅OpenID Connect RFC)。如果令牌在常规超时之前失效,您将从后端获得“HTTP 401 Unauthorized”响应。在这种情况下,请检查令牌有效性,并在必要时获取新的令牌。
将访问令牌作为cookie并不是一个好主意,因为它会附加到每个请求(具有相同的域,端口和可能的路径),这可能是一个安全问题。保留在sessionStorage
。