Laravel LoginController条件每次都不起作用

问题描述 投票:0回答:1

我想阻止一些处于阻塞结构的用户的登录访问,它是第一次工作,但当我回到导航器并再次尝试登录时,用户可以访问该应用程序。我不知道为什么......任何想法?

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');

    }
}
laravel
1个回答
0
投票

在用户登录到站点后调用authenticated方法,因此您需要再次将其注销。

此外,你可以在这里简化你的逻辑。假设Structure$user->structure的型号相同,你应该能够做到:

protected function authenticated(Request $request, $user)
{
    if ($user->structure->blocked) {

        auth()->logout();

        return redirect('compte-bloque');
    } 
}
© www.soinside.com 2019 - 2024. All rights reserved.