在 laravel 5.2 中使用默认身份验证路由对用户进行身份验证后设置会话数据

Posted

技术标签:

【中文标题】在 laravel 5.2 中使用默认身份验证路由对用户进行身份验证后设置会话数据【英文标题】:Set session data after authenticate user using default auth route in laravel 5.2 【发布时间】:2017-05-10 16:19:44 【问题描述】:

我正在使用 laravel 5.2 开发一个项目。我通过运行此命令在此项目中使用默认身份验证。

php artisan make:auth

一切都很好。现在我想在对用户进行身份验证后将一些数据放入会话中。在对用户进行身份验证后,我找不到将代码存储在会话中的位置。我用谷歌搜索但没有找到任何解决方案。

【问题讨论】:

【参考方案1】:

在 5.2 中,您需要从 Illuminate\Foundation\Auth\AuthenticatesUsers 特征中覆盖 login() 方法 AuthController.php

要设置数据,请在login() 方法中使用session() 助手:

session(['key' => 'value']);

【讨论】:

【参考方案2】:

最后我得到了另一个问题的答案。在这里,我为正在寻找此类解决方案的人发布解决方案

https://***.com/a/36491235/2738927

【讨论】:

这是 5.1 的解决方案,您使用的是 5.2 它现在为我工作。如果我遇到任何问题,我会尝试您的解决方案 只是好奇您使用的是哪个版本?因为在 5.2.45 中没有 authenticated() 方法。 我的laravel版本是5.2.41【参考方案3】:

您可以使用以下代码检查用户是否登录。

if (Auth::check()) 
    // The user is logged in...

然后您可以使用会话助手类在会话中设置所需的值。

session()->set('session_key', 'session_value');

此外,您可以使用 forget 方法删除会话。

session()->forget('session_key');

阅读资源。

https://laravel.com/docs/5.3/authentication

https://laravel.com/docs/5.3/session

https://laravel.com/docs/5.3/helpers#method-session

【讨论】:

以上是关于在 laravel 5.2 中使用默认身份验证路由对用户进行身份验证后设置会话数据的主要内容,如果未能解决你的问题,请参考以下文章

如何更改 Laravel 5.2 更改登录路由?

Laravel 5.2 身份验证不起作用

Laravel 5.2 - 方法身份验证不存在

如何在 Laravel 5.2 中创建多重身份验证

如何在 laravel 5.2 中使用多重身份验证 [关闭]

Laravel 5.2 需要一个实现默认身份验证驱动程序/“Multi-Auth”的示例。现在需要很多工作,因为[重复]