gpt4 book ai didi

Laravel - 如何获得对用户进行身份验证的 guard ?

转载 作者:行者123 更新时间:2023-12-04 16:42:31 25 4
gpt4 key购买 nike

我有一个具有两个功能的自定义 LoginController:

loginCustomer that runs Auth::guard('customer')->attempt(...);

loginEmployee that runs Auth::guard('employee')->attempt(...);


我在 config.auth 中自定义了两个守卫,指向我的两个模型(客户和员工)并保护后台和前端的路由。
现在在我自定义的 LogoutController 中,我想运行 Auth::logout() 但它不起作用,因为我认为它使用默认保护。
仅当我指定 Auth::guard('customer')->logout() 时才有效或 Auth::guard('employee')->logout() ,取决于用于登录的守卫。
有什么办法可以让守卫用来验证用户的身份,这样我就只能使用 Auth::guard($guard)->logout ?

最佳答案

您可以使用 shouldUse方法:

调用此方法后,您可以通过之前由 shouldUse 设置的守卫注销用户。方法。

在你的情况下:

if( Auth::guard('customer')->attempt(...) ){
Auth::shouldUse('customer');
}


if( Auth::guard('employee')->attempt(...) ){
Auth::shouldUse('employee');
}

在此之后,您可以使用 Auth::logout 并且将使用先前选择的守卫(通过 shouldUse ):
// just use Auth::logout without Auth::guard(GUARDNAME)->logout()
Auth::logout();

关于此方法的简短文档: https://laravel.com/api/5.4/Illuminate/Auth/AuthManager.html#method_shouldUse

关于Laravel - 如何获得对用户进行身份验证的 guard ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42809403/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com