我在为我的管理员用户使用自定义登录时有点卡住了。
我更喜欢为我的管理员使用另一个模型,只是为了确保所有内容都是分开的。我确实看到了很多例子来保护登录。所以看了一些教程并阅读了一些文章,我试了一下,但卡住了。
我为我的管理员设置了第二个守卫。
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'admin' => [
'driver' => 'session',
'provider' => 'admins',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
//'hash' => false,
],
],
使用提供者:
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\Models\User::class,
],
'admins' => [
'driver' => 'eloquent',
'model' => App\Models\Users\Admin::class,
]
]
是的,我的 Admin 模型位于命名空间 App\Models\Users 中;
在我更改的登录 Controller 中:
Auth::attempt($request->only('email', 'password'));
到:
Auth::guard('admin')->attempt($request->only('email', 'password'));
在没有守卫的情况下它可以工作/使用用户模型获得授权。但我希望管理员守卫能够获得管理员模型。
现在,什么都没有发生。不是错误或 Auth 用户。
这里有人看到我做错了什么吗?
附言我已经清除了很多配置:缓存等。
更新:
当我将默认的 Gaurd 更改为“admin”并在未指定守卫的情况下登录时。我得到了一个管理模型。所以当我使用 Auth::guard('admin')
最佳答案
您是否尝试过使用 auth()->guard('admin')
。希望对你有帮助
关于Laravel 守卫登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56111758/