我有点拘泥于为我的管理员用户使用自定义登录。

我倾向于为我的管理员使用另一个模型,以确保所有东西都是分开的。我确实看到了很多为登录设置保护的示例。所以看了一些教程,读了一些文章,我尝试了一下,但还是被卡住了。

我为我的管理员做了第二个警卫。

“守卫”=>[“网络”=>[“driver”=>“session”,“provider”=>“users”,],“管理员”=>[“driver”=>“session”,“provider”=>“admins”,],“api”=>[“driver”=>“token”,“provider”=>“users”,//“散列”=>false,],],

使用提供程序:

“提供者”=>[“用户”=>[“driver”=>“雄辩”,“model”=>App\Models\User::class,],“管理员”=>[“driver”=>“雄辩”,“model”=>App\Models\Users\Admin::class,]]

是的,我的Admin模型位于名称空间App\Models\Users;

在登录控制器中,我更改了:

Auth::尝试(仅$request->('email','password'));

收件人:

Auth::guard('admin')->尝试(仅$request->('email','password'));

如果没有防护,它就可以工作/使用用户模型进行身份验证。但我希望管理员能够努力获得管理员模型。

现在什么都没有发生。不是错误或身份验证用户。

有人看到我在这里做错了什么吗?

另外,我已经清除了很多config:cache等。

更新:当我将默认的Gaurd更改为“admin”并在没有指定防护的情况下登录时。我得到了一个管理员模型。所以当我使用授权::guard('admin')

2个答案2

重置为默认值
2

要获取登录的用户,还应该指定防护。

所以如果你和这样的警卫登录:

Auth::guard('admin')->尝试(仅$request->('email','password'));

您还应该使用这样的保护来检索用户:

Auth::guard('admin')->user()
1
  • 一个提示:如果您正在使用授权路由中的中间件,您可以指定授权:管理员为了在呼叫时自动使用“管理员”保护授权::user()例如,您可以路由::prefix('admin')->中间件('auth:admin')->group(…);而/admin路由使用的所有控制器将始终使用“admin”保护。 评论 2023年8月4日21:52
1

你试过用吗auth()->guard('admin').我希望它有帮助

1

你的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.

不是你想要的答案吗?浏览标记的其他问题问你自己的问题.