1

我正在使用Laravel的默认身份验证进行多重身份验证。我有两种类型的用户管理员和普通用户。对于管理员,我使用了管理员警卫,如果我以不同浏览器的两种类型的用户身份登录,则工作正常,但问题是当我在管理员和用户登录时在同一浏览器中以管理员和用户的身份登录时将我重定向到管理员登录页面。如果我从管理面板注销,然后再登录管理员登录页面,我想要重定向。否则,如果我从用户面板注销,它应该将我重定向到“/”路线。这是我在验证用户文件中注销方法的代码。注销Laravel 5中的多个身份验证

public function logout(Request $request) 
    { 
     if(Auth::guard('admin')->check()) $redirect = '/admin/login'; 
     else $redirect = '/'; 

     $this->guard()->logout(); 

     $request->session()->flush(); 

     $request->session()->regenerate(); 

     return redirect($redirect); 
    } 

这里是双方管理员和用户的注销表单。

<a href="{{ url('/logout') }}" onclick="event.preventDefault(); 
    document.getElementById('logout-form').submit();">Logout</a> 

现在该怎么解决?

回答

0

嗯,据我所知,当你注销一个管理员&用户时,你仍然希望被发送回/路由。如果当前用户是管理员,并且默认将用户送回家,我建议仅删除检查。

+0

其实不是这样。如果我从管理员注销,它应该重定向到管理员登录页面,否则,如果我从用户面板注销,它应该将我重定向到“/”路线。 –

+0

当你在dd(Auth :: guard('admin') - > check())时,如果你把它放在你的if语句上面,你会得到什么。 –