【发布时间】:2021-07-15 05:21:07
【问题描述】:
你好,我是 laravel 护照的新手,谁能告诉我 tokensExpireIn、refreshTokensExpireIn 和 personalAccessTokensExpireIn 有什么区别?
【问题讨论】:
标签: php laravel api laravel-passport
你好,我是 laravel 护照的新手,谁能告诉我 tokensExpireIn、refreshTokensExpireIn 和 personalAccessTokensExpireIn 有什么区别?
【问题讨论】:
标签: php laravel api laravel-passport
访问令牌携带直接访问资源所需的信息。换句话说,当客户端将访问令牌传递给管理资源的服务器时,该服务器可以使用令牌中包含的信息来决定客户端是否被授权。访问令牌通常有一个过期日期并且是短暂的 (tokensExpireIn)。
刷新令牌携带获取新访问令牌所需的信息。换句话说,每当需要访问令牌来访问特定资源时,客户端都可以使用刷新令牌来获取由身份验证服务器颁发的新访问令牌。常见用例包括在旧访问令牌过期后获取新访问令牌,或首次访问新资源。刷新令牌也可以过期,但寿命相当长 (refreshTokensExpireIn)。
刷新令牌背后的想法是,如果访问令牌因为寿命短而被泄露,攻击者只有有限的时间来利用它。
刷新令牌如果遭到破坏,将毫无用处,因为攻击者除了刷新令牌之外还需要客户端 ID 和密码才能获得访问令牌。
个人访问令牌用于用户可能希望为自己生成访问令牌而无需通过标准授权代码重定向流程的情况。允许用户通过应用程序的 UI 向自己颁发令牌可能有助于允许用户使用您的 API,或者通常可以作为一种更简单的方法来颁发访问令牌。这些令牌通常是长期存在的 (personalAccessTokensExpireIn),但也可以通过 UI 管理其生命周期。 Github 就是一个例子:https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token
【讨论】: