gpt4 book ai didi

laravel - 刷新 token 与 Laravel Passport 中的访问 token 一起被撤销

转载 作者:行者123 更新时间:2023-12-02 17:51:44 24 4
gpt4 key购买 nike

我使用 laravel/passport password_grant 进行身份验证。整个生成 access_tokenrefresh_token 过程工作正常。现在我正在尝试使用 laravel 护照 token 事件来撤销旧 token 。

我引用了这篇文章的过程 - https://laracasts.com/discuss/channels/laravel/laravel-passport-revoke-and-prune-event-listener-is-not-doing-anything

这有效...但是当使用之前提供的刷新 token 刷新访问 token 时,会创建一个新的访问 token 并且还会创建一个新的刷新 token 。最终,在撤销旧的访问 token 时,旧的、未过期的刷新 token 也会被撤销。

但我认为,刷新 token 只有在过期时才必须撤销。

而且,当我从 App\Providers\EventServiceProvider $listen array 中删除 EventListeners 时,撤销机制仍然有效。

就像拔掉插头,灯泡仍然亮着一样。

如何解决这个问题?或者我在某个地方的概念有误?

最佳答案

But when refreshing an access token using the previously provided refresh token, a new access token is being created and also a new refresh token being is created.

这基本上就是刷新 token (在某种程度上)防止 MITM 攻击的原因。如果有人拦截您的通信并找到您的访问 token ,他们就可以在 token 存在期间冒充您。但是,如果他们拦截您刷新 token 的请求,则只有你们之一(用户和攻击者)可以使用它,因为它一旦使用就会被撤销。如果你先使用它,它对他们来说就变得毫无用处。如果他们先使用它,您将被注销,因为您的旧 token 将被撤销。如果他们可以拦截您的所有请求 - 并不断找到您的新访问 token ,您需要重新考虑您的安全设置。

来自 RFC6749 部分 1.5. Refresh Token 图 2:刷新过期的访问 token :

(H) The authorization server authenticates the client and validatesthe refresh token, and if valid, issues a new access token (and,optionally, a new refresh token).

关于laravel - 刷新 token 与 Laravel Passport 中的访问 token 一起被撤销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47216175/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com