为什么当我登录并被转发到路由时会出现403错误?但是,如果我手动输入URL,
这是一个标识为1的中间件角色,它应该可以通过用户角色1访问
这里是代码
php artisan route:clear && php artisan route:cache composer dump-autoload
是行不通的,
public function login(Request $request)
{
$input = $request->all();
$this->validate($request, [
'identifier' => 'required',
'password' => 'required'
]);
$credentials = [
'password' => $input['password']
];
if (strpos($input['identifier'], '@') !== false) {
$credentials['email'] = $input['identifier'];
} else {
$credentials['username'] = $input['identifier'];
}
if (auth()->attempt($credentials)) {
if (auth()->user()->role === 1) {
return redirect()->route('seller.dashboard');
} else {
abort(403, 'Anda tidak memiliki akses.');
}
} else {
return redirect()->route('seller.login')->with('error', 'Email atau Password tidak sesuai.');
}
}
它应该直接转发到route('seller. dashboard'),而不需要403语句,因为登录的人是角色1
1条答案
按热度按时间r55awzrz1#
auth尝试方法无法正常工作,请尝试排除尝试方法的故障。
查一下这条线路什么东西回来了?
如果auth尝试返回true,则检查用户的auth。哪个用户被认证?
在这里你可以得到你的答案,如果用户验证了什么是角色,如果没有,那么尝试解决auth尝试。