我阻止没有'admin'角色的用户登录到这样的Laravel 5.5应用程序中的仪表板,如app / http / Controllers / auth / LoginController.php ..
protected function credentials(\Illuminate\Http\Request $request)
{
$credentials = $request->only($this->username(), 'password');
return array_add($credentials, 'type', 'admin');
}
这很有效,但如果有人使用忘记密码功能重置密码,那么它会绕过此功能并让他们进入仪表板。
如何锁定信息中心以防止这种情况发生?
我应该在密码重置后禁用自动登录,这还够吗?
答案 0 :(得分:1)
覆盖authenticated
中的LoginController
方法。将下面的代码放在LoginController中。
protected function authenticated(Request $request, $user)
{
if ( Use your Logic here ) {
return redirect()->route('admin.home');
}
return redirect('/home');
}
答案 1 :(得分:1)
使用Middleware,您可以完全控制应用中的所有请求。
此外,您可能希望查看(spatie / laravel-permission)@ github,它将使您的角色/权限过程变得更加容易。