php - Laravel 5.4 多重身份验证 - Auth::guard()->user() 空

标签 php laravel authentication laravel-5 laravel-5.4

我在 Laravel 5.4 中创建了多重身份验证测试。它使用自定义中间件、自定义 Eloquent 提供程序等。身份验证流程正在运行,我可以通过两种方式登录。但是,如果用户已登录,则在家庭 Controller 中,当我想使用 Auth::user() 检查用户时或Auth::guard()->user() , 它是空的。 Auth::guard()也是空的。但我不明白,为什么?!它应该包含登录的用户实例,不是吗?

还有$request->getUserResolver()说守卫是空的...o.O

我做错了什么?

Here it is我的测试仓库,如果你想检查我的代码。

提前谢谢您!

编辑1:

\app\Http\Controllers\Employee\HomeController.php Auth::guard()->user()Auth::user()都是空的。

namespace App\Http\Controllers\Employee;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

class HomeController extends Controller
{

    public function __construct(Request $request)
    {
        $this->middleware('auth.employee:employee');
    }

    public function index(Request $request)
    {
        $users[] = Auth::user();
        $users[] = Auth::guard()->user();
        $users[] = Auth::guard('employee')->user();

        dd($users);

        return view('employees.home.index');
    }
}

最佳答案

Auth::shouldUse(your_guard_name);
在您的登录函数中调用此函数

关于php - Laravel 5.4 多重身份验证 - Auth::guard()->user() 空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42029011/

相关文章:

PHP setlocale 即使使用现有的语言环境也无法正常工作

Laravel Scout,使用 where 子句搜索

php - Laravel:数据库 - 更多 "log column"

asp.net-mvc - 将 HttpContext.Current.User.Identity 传递给 WCF

azure - 如何在 Azure VM 中创建多个帐户?

java - 如何使用 Java EE 6 实现 self 管理的 Web 用户?

php - 回显末尾不带零点 (.0) 的十进制值

php - 比较 PHP 中的 unix 时间戳

php - 将 Sql 数据导出为 PDF

php - Laravel 在特征启动期间设置/修改模型属性