Laravel 5.4 多重授权 - Auth::guard()->user() 为空
Laravel 5.4 Multi auth - Auth::guard()->user() empty
我在 Laravel 5.4 中创建了一个多授权测试。它使用自定义中间件、自定义 Eloquent 提供程序等。身份验证流程正在运行,我可以通过两种方式登录。但是,如果用户已登录,当我想用 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');
}
}
将 config/auth.php
中的驱动程序名称更改为..
'employees' => [
'driver' => 'eloquent',
'model' => App\Models\UserEmployee::class,
],
'customers' => [
'driver' => 'eloquent',
'model' => App\Models\Customer::class,
],
Auth::shouldUse(your_guard_name)
;
在您的登录函数中调用它
我在 Laravel 5.4 中创建了一个多授权测试。它使用自定义中间件、自定义 Eloquent 提供程序等。身份验证流程正在运行,我可以通过两种方式登录。但是,如果用户已登录,当我想用 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');
}
}
将 config/auth.php
中的驱动程序名称更改为..
'employees' => [
'driver' => 'eloquent',
'model' => App\Models\UserEmployee::class,
],
'customers' => [
'driver' => 'eloquent',
'model' => App\Models\Customer::class,
],
Auth::shouldUse(your_guard_name)
;
在您的登录函数中调用它