Laravel Passport - 连接不良时刷新 token 问题

标签 laravel laravel-5 laravel-passport

Laravel 上有 API,使用 Laravel Passport 进行身份验证。在默认设置下一切都运行良好。然后我们决定将访问 token 的生命周期相应更改为 1 天和 1 个月。它导致刷新 token 出现问题。 示例:访问 token 已过期,应用程序向 API 发送刷新 token 请求。然后应用程序就会失去互联网连接并且无法获取新的 token 。 (服务器发送新 token ,但应用程序不可用)。互联网连接恢复后,应用程序发送新的刷新请求,但收到 401。因此应用程序需要从 API 获取新代码来对用户进行身份验证。我认为强制用户每天登录不是一个好主意。 有什么建议么?也许有像“握手”之类的方法可以解决这个问题?我的意思是只有在确认应用程序获得新 token 后才刷新 token 。

最佳答案

如果我正确理解您的问题,您的意思是您最初有一个 Access Token1、Refresh Token1 对,当 Access Token1 过期时,您尝试请求使用刷新 token 1创建新的访问 token

现在,由于某种原因,您无法收到这个新的访问 token 2、刷新 token 2 对,那么用户会做什么?嗯,你是从消费者的角度来看这一点的。如果您从 Oauth2 服务器的角度看到相同的场景。

服务器不知道您是否未能收到 token 或收到 token 但未能保存。服务器的工作是根据您的有效刷新 token 生成新的访问 token 。一旦创建了新的访问 token ,它就会使旧的刷新 token 失效。这是标准的 Oauth2 实现。

您可以尝试这样做,以便旧的刷新 token 不会在新的访问 token 生成时立即撤销。但这引入了重放攻击的可能性。

因此,标准做法是让用户重新登录。

关于Laravel Passport - 连接不良时刷新 token 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60613891/

相关文章:

php - 如何为生成的多页 pdf 添加分页符

php - 如何在 Laravel 5 中删除 session

php - Laravel 文件上传添加到集合移动文件在数字文件夹中

php - Laravel Passport JWT 身份验证失败

回调函数中变量的PHP错误

php - Laravel 5 路线不工作

php - Laravel 条件语句 : is when() efficient?

php - 如何在mongodb中使用laravel 7护照?

laravel - 是否可以在Laravel Passport中禁用路线?

mysql - 选择 Laravel 中列的总和等于另一个表中另一列的值的所有行