我在用户表中有级别列,登录后我想重定向到laravel中的面板,但我不知道在哪里检查并重定向用户??? 我尝试登录安全性
此代码正确吗?
protected function authenticated(Request $request, $user)
{
if(auth()->user()->isAdmin())
{
return redirect('/admin/panel');
} elseif(auth()->user()->isWriter())
{
return redirect('/writer/panel');
}
return redirect('/user/panel');
}
答案 0 :(得分:1)
将redirectPath()
方法覆盖到您的LoginController
中。
class LoginController extends Controller
{
use AuthenticatesUsers;
public function redirectPath()
{
if (auth()->user()->isAdmin())
{
return '/admin/panel';
}
elseif (auth()->user()->isWriter())
{
return '/writer/panel';
}
return '/user/panel';
}
}
答案 1 :(得分:0)
在使用Illuminate\Foundation\Auth\AuthenticatesUsers
特征进行身份验证的LoginController中,您必须重写 redirectTo()方法并编写自己的逻辑。因此您必须输入以下代码:
protected function redirectTo(){
$user = User::whereId(Auth::id())->first();
if(isset($user)){
if($user->role == 'admin'){
return '/admin/panel'; //path to admin panel
}elseif($user->role == 'writer'){
return '/writer/panle'; //path to writer panel
}
}
return '/';
}