无法使用 Laravel 5 持久化 Auth::login

Posted

技术标签:

【中文标题】无法使用 Laravel 5 持久化 Auth::login【英文标题】:Can't persist Auth::login with Laravel 5 【发布时间】:2016-06-06 01:21:00 【问题描述】:

我正在尝试在控制器或路由中手动登录用户。这在页面范围内有效,但不会持续存在。

这是我的代码:

Route::get('check', function ()
    if (Auth::loginUsingId(1))  // User #1 is existing in the DB
      return redirect()->intended('/check2');
    
);

Route::get('check2', function ()
    dd(Auth::user());
);

我在 /check2 页面上得到:null

谁能给我一个快速的提示?

PS:我测试了默认的 Auth Laravel 系统,它可以工作。

非常感谢!

【问题讨论】:

我没有立即注意到任何事情,但我觉得它必须是非常简单的事情。它设置cookies吗?它是否在后端创建会话? 同样的事情? ***.com/questions/21603347/… 5的什么版本,技术上是3个不同的版本,每个都有自己的subversions。 【参考方案1】:

问题很简单。在 Laravel 5.2 上,您需要将所有相关的路由包装在中间件“web”中,以便使用 Authentification。

谢谢大家。

【讨论】:

以上是关于无法使用 Laravel 5 持久化 Auth::login的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5.2 错误 App\User 无法使用 Illuminate\Foundation\Auth\User - 这不是特征

Laravel 5.2 Auth 登录有效,Auth::check 失败

Laravel 5.3:如何在全局中间件中使用 Check Auth?

Laravel 5.4 Auth Guardian 驱动程序 [customers] 未定义

Auth::attempt 在 Laravel 5 中不起作用

Laravel 5.6和Eloquent将子模型持久化到数据库中,无法从模型中找到hasMany或belongsTo方法