Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在LoginController中检查当前防护?_Php_Laravel_Authentication_Laravel 6 - Fatal编程技术网

Php 如何在LoginController中检查当前防护?

Php 如何在LoginController中检查当前防护?,php,laravel,authentication,laravel-6,Php,Laravel,Authentication,Laravel 6,我一直在开发一个基于多身份验证的应用程序,我需要根据用户的保护重定向到注销上的动态位置。问题是当我试图检查当前的身份验证保护时;它总是返回false。我已经覆盖了默认的LoginController中的注销功能 LoginController.php 类登录控制器扩展控制器 { 使用认证用户; 公共功能注销() { if(Auth::guard('manager')->check()){ Auth::logout(); 返回重定向('/manager/login'); } 如果(Auth::gu

我一直在开发一个基于多身份验证的应用程序,我需要根据用户的保护重定向到
注销
上的动态位置。问题是当我试图检查当前的身份验证保护时;它总是返回false。我已经覆盖了默认的
LoginController
中的注销功能

LoginController.php

类登录控制器扩展控制器
{
使用认证用户;
公共功能注销()
{
if(Auth::guard('manager')->check()){
Auth::logout();
返回重定向('/manager/login');
}
如果(Auth::guard('employee')->check()){
Auth::logout();
返回重定向('/login');
}
Auth::logout();
返回重定向('/login');
}
公共函数构造()
{
$this->middleware('guest')->除了('logout');
$this->middleware('guest:manager')->除了('logout');
}
}

使用laravel native auth,没有其他解决方案,只能在所有防护装置中循环查找所需的防护装置

你可以让它更“干净”和更有活力

public函数注销()
{
$guards=['经理','员工','';
foreach($guard作为$guard){
if(Auth::guard($guard)->check()){
Auth::guard($guard)->logout();
返回$this->redirectLoggedOut($guard);
}
}
返回重定向('/login');
}
公共功能重定向日志($guard)
{
交换机($guard){
个案‘经理’:
返回重定向('/manager/login');
违约:
返回重定向('/login');
}
}

使用laravel native auth,没有其他解决方案,只能在所有防护装置中循环查找所需的防护装置

你可以让它更“干净”和更有活力

public函数注销()
{
$guards=['经理','员工','';
foreach($guard作为$guard){
if(Auth::guard($guard)->check()){
Auth::guard($guard)->logout();
返回$this->redirectLoggedOut($guard);
}
}
返回重定向('/login');
}
公共功能重定向日志($guard)
{
交换机($guard){
个案‘经理’:
返回重定向('/manager/login');
违约:
返回重定向('/login');
}
}

Wow!它起作用了。但是为什么我们不能单独检查守卫?@ZainFarooq因为在使用哪个守卫的会话中没有任何信息。所以你需要骑自行车。哇!它起作用了。但是为什么我们不能单独检查守卫?@ZainFarooq因为在使用哪个守卫的会话中没有任何信息。所以你需要骑自行车。