Laravel Passport - tokensExpireIn、refreshTokensExpireIn 和 individualAccessTokensExpireIn 之间有什么区别

Man*_*ang 4 php api laravel laravel-passport

你好,我是 Laravel Passport 的新手,有人可以告诉我 tokensExpireIn、refreshTokensExpireIn 和 individualAccessTokensExpireIn 之间有什么区别吗?

pkt*_*ndu 5

访问令牌携带直接访问资源所需的信息。换句话说,当客户端将访问令牌传递给管理资源的服务器时,该服务器可以使用令牌中包含的信息来决定客户端是否被授权。访问令牌通常有一个过期日期并且是短暂的 ( tokensExpireIn)。

刷新令牌携带获取新访问令牌所需的信息。换句话说,每当需要访问令牌来访问特定资源时,客户端都可以使用刷新令牌来获取由身份验证服务器颁发的新访问令牌。常见用例包括在旧访问令牌过期后获取新的访问令牌,或者首次访问新资源。刷新令牌也可能过期,但寿命相当长 ( refreshTokensExpireIn)。

刷新令牌背后的想法是,如果访问令牌因其短暂而受到损害,则攻击者只有有限的时间来利用它。

刷新令牌如果被泄露,将毫无用处,因为除了刷新令牌之外,攻击者还需要客户端 ID 和密钥才能获取访问令牌。

个人访问令牌用于用户可能希望为自己生成访问令牌而不通过标准授权代码重定向流程的情况。允许用户通过应用程序的 UI 向自己颁发令牌可能有助于允许用户使用您的 API,或者可以作为颁发访问令牌的更简单方法。这些令牌通常具有较长的生命周期 ( personalAccessTokensExpireIn),但生命周期也可以通过 UI 进行管理。Github 就是一个例子:https: //docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token