【问题标题】:laravel Auth::user() null > session file not therelaravel Auth::user() null > 会话文件不存在
【发布时间】:2019-12-10 14:50:31
【问题描述】:

我知道有几个用户遇到了这个问题,但似乎没有提供任何解决方案对我有帮助。

我做了一个调试日志跟踪流程和数据:

  1. 登录
  2. 登录 RedirectIfAuthenticated 后:正确的 userData 和 角色
  3. Lo​​ginController 也显示正确的数据 > 重定向到 /admin
  4. 再次 RedirectIfAuthenticated 但这次所有数据都是空的

我的会话跟踪设置为文件 这是我的日志,但我不知道会话令牌发生了什么或为什么请求突然丢失其数据...我的印象是会话存在问题,因为我在任何较新的会话文件中都找不到 tokenString

[2019-08-02 00:25:37] production.DEBUG: RedirectIfAuthenticated handle  
[2019-08-02 00:25:37] production.DEBUG: Request array (
  '_token' => 'RNIq0gqNNYIbTshxh9S0f1Jrhowsihap8QzZioJ8',
  'email' => 'xxx',
  'password' => 'xxx',
  'remember' => 'on',
)  
[2019-08-02 00:25:37] production.DEBUG:   
[2019-08-02 00:25:38] production.DEBUG: LoginCOntroller ROLE_ADMIN  
[2019-08-02 00:25:38] production.DEBUG: ok, we have a Role (admin) here goto /admin  
[2019-08-02 00:25:38] production.DEBUG: Request array (
  '_token' => 'RNIq0gqNNYIbTshxh9S0f1Jrhowsihap8QzZioJ8',
  'email' => 'xxx',
  'password' => 'xxx',
  'remember' => 'on',
)  
[2019-08-02 00:25:38] production.DEBUG: correct user
[2019-08-02 00:25:39] production.DEBUG: RedirectIfAuthenticated handle  
[2019-08-02 00:25:39] production.DEBUG: Request array (
)  <<< EMPTY
[2019-08-02 00:25:39] production.DEBUG:   

【问题讨论】:

    标签: laravel authentication session


    【解决方案1】:

    我一直忽略的一件事是重定向路由的去向,以及它是否在 Auth 中间件中。如果您在身份验证后重定向到该中间件之外的路由,您将失去用户和其他一切。

    检查以确保您从 RedirectIfAuthenticated() 发送到的任何路由(第二次,在您的列表中的第 4 个)都在您的 Auth 中间件中。示例如下:

    Route::group(['middleware' => ['auth']], function () {  // here }
    

    【讨论】:

    • 谢谢,我希望是这样。我快疯了。我将 PHP 版本切换到 7.2 并在短时间内进一步重定向,但是在构建视图时,Auth 信息丢失并且 Auth::check() 返回 false。它开始显得如此断断续续,我相信它与缓存有关,尽管文件/数据库和 cookie 之间的更改都没有帮助
    猜你喜欢
    • 2023-02-04
    • 2021-06-28
    • 2018-05-07
    • 1970-01-01
    • 2019-09-20
    • 2016-05-13
    • 2020-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多