我的网站有多个保护措施,例如:
'defaults' => [
'guard' => 'web',
'passwords' => 'users',
],
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'recruiter' => [
'driver' => 'session',
'provider' => 'users',
],
'admin' => [
'driver' => 'session',
'provider' => 'users',
],
],
是否有一种方法可以检查用户是否简单登录(即经过身份验证),而不管是否有任何防护措施?
当前,我必须执行以下操作:
if (Auth::guard('web')->check() ||
Auth::guard('recruiter')->check() ||
Auth::guard('admin')->check()) {
}
答案 0 :(得分:0)
我不认为只有一种方法可以对付所有守卫。您是否考虑过封装身份验证保护检查的中间件,以便至少在整个代码库中都不会使用检查?
答案 1 :(得分:0)
正如其他人所述,这不是Laravel提供的功能。您可能必须在用户国家/地区代码中为此功能创建一些内容。我已经创建了一些适合您特定用例的东西:
namespace Your\Namespace;
use Illuminate\Support\Facades\Auth;
class Guard
{
public static function checkAny(...$guards)
{
foreach($guards as $guard) {
if (Auth::guard($guard)->check()) {
return true;
}
}
return false;
}
}
if (\Your\Namespace\Guard::checkAny('web', 'admin','recruiter')) {
// don't show captcha
}