我想阻止一些处于阻塞结构的用户的登录访问,它是第一次工作,但当我回到导航器并再次尝试登录时,用户可以访问该应用程序。我不知道为什么......任何想法?
public function __construct()
{
$this->middleware('guest')->except('logout');
}
protected function authenticated(Request $request, $user)
{
$blacklist = Structure::where('blocked' , '=' , 1)->pluck('id')->toArray();
$structure_id = $user->structure->id;
if(in_array($structure_id,$blacklist)){
return redirect('compte-bloque');
}else{
return redirect('/home');
}
}
在用户登录到站点后调用authenticated
方法,因此您需要再次将其注销。
此外,你可以在这里简化你的逻辑。假设Structure
与$user->structure
的型号相同,你应该能够做到:
protected function authenticated(Request $request, $user)
{
if ($user->structure->blocked) {
auth()->logout();
return redirect('compte-bloque');
}
}