Laravel 7 将默认守卫更改为员工,但当前经过身份验证的用户返回 null

Posted

技术标签:

【中文标题】Laravel 7 将默认守卫更改为员工,但当前经过身份验证的用户返回 null【英文标题】:Laravel 7 change the default guard to employee but the current authenticated user return null 【发布时间】:2021-01-13 15:16:44 【问题描述】:

我将默认保护更改为如下所示

auth.php

 'defaults' => [
            'guard' => 'employee',
            'passwords' => 'users',
        ],
    
 'guards' => [
            'employee' => [
                'driver' => 'session',
                'provider' => 'employees',
            ],
        ],

 'providers' => [
        
         'employees' => [
            'driver' => 'eloquent',
            'model' => App\Employee::class,
        ],
    ],

但是,我无法从这个 Auth 门面Auth::guard('employee')->user() 获取当前登录用户 这将返回一个空结果。

但是用户登录成功Auth::attempt(['email' => $request->email, 'password' => $request->password, 'status' => 1])

非常感谢您的帮助。

谢谢

【问题讨论】:

【参考方案1】:

感谢观众。我没有使用Auth::guard('employee')->user()门面,而是尝试了登录方法$request调用。这个对我有用。 $request->user();

public function login(Request $request)
  $request->user();

【讨论】:

以上是关于Laravel 7 将默认守卫更改为员工,但当前经过身份验证的用户返回 null的主要内容,如果未能解决你的问题,请参考以下文章

如何在 laravel 刀片模板中检查当前的身份验证守卫及其来宾?

在 Laravel 中使用多个守卫时,在注册/登录后设置默认守卫

为啥laravel中的两个守卫会相互影响?

Laravel 5.2 auth 将 'id' 更改为 'customer_id'

Laravel 迁移 - 如何将 `id` 字段更改为主要字段并稍后自动递增

将 laravel remember_token 字段更改为其他内容