【问题标题】:User session is still valid after a database refresh数据库刷新后用户会话仍然有效
【发布时间】:2021-03-14 14:41:55
【问题描述】:

在使用 Laravel Sanctum in SPA mode 进行身份验证的 Laravel API 上,数据库刷新后会话仍然有效。

在运行php artisan migrate:fresh --seed 后,之前登录的用户不会断开连接,并且可以使用 200 状态代码、有效的响应正文和响应标头中的 Set-Cookie 请求 API。

以前有人遇到过这个问题吗?

【问题讨论】:

  • 那可能是因为会话仍然有效
  • @Donkarnash 是的,我考虑过了,但是如果我的用户不再存在于我的数据库中,会话如何仍然有效? Laravel 如何在每个请求上重建 Session Token 和 XSRF-Token?
  • Laravel Sanctum 使用 Laravel 内置的会话认证。您可能正在使用文件会话驱动程序,或者不是数据库的其他东西。因此,即使您刷新数据库,这些会话仍然存在。
  • 感谢您的回答!但是我在您发表评论之前找到了解决方案。无论如何谢谢:)

标签: laravel authentication laravel-sanctum


【解决方案1】:

好的,我刚刚从我的一个朋友那里得到了答案,关键是使用 Laravel 中的默认会话驱动程序file,刷新数据库时不会删除会话。

我刚刚运行了rm -rf storage/framework/sessions/*,一切运行良好。

【讨论】:

  • 您也可以在数据库刷新后使用php artisan key:generate 更改APP_KEY。无论驱动程序如何,它都会使所有会话无效。 (请记住,它不应该在生产中用于使会话无效,它可能会破坏things。)
猜你喜欢
  • 1970-01-01
  • 2021-05-06
  • 1970-01-01
  • 2019-05-09
  • 1970-01-01
  • 2021-10-01
  • 2021-11-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多