我用条件对用户进行身份验证,如果
用户角色= 1登录应该成功否则登录失败
现在我要做的是:
if (Auth::attempt(array('email' => $email, 'password' => $password, 'role' => 1)))
{
// Login User
} else {
return Redirect::route('admin.login')
->with('message', 'Unauthorized user Or wrong email / password combination');
}它运行良好,但当身份验证失败时,我希望能够找出失败的原因,因此我将能够根据身份验证失败的原因显示以下消息:
有办法做这些事吗?
发布于 2015-02-23 10:06:35
多亏了“轮班交换”,我才弄明白了这一点:
if (Auth::attempt(array('email' => $email, 'password' => $password, 'role' => 1)))
{
dd('Login Successful');
} else {
if( Auth::validate( array( 'email' => $email, 'password' => $password ) ) )
{
// Wrong Role
dd('Unauthorized user');
} else {
dd('Wrong email / password');
}
}这个成功了!!
发布于 2015-02-23 09:45:08
诀窍是在失败部分使用Auth::validate()。你需要做几个验证才能解决问题所在
if (Auth::attempt(array('email' => $email, 'password' => $password, 'role' => 1)))
{
// Login User
} else {
Auth::validate(array('email' => $email, 'password' => $password)) {
// Wrong role
} else {
if (User::where('email', $email)->first()) {
// Wrong password
} else {
// Wrong username
}
}发布于 2015-02-23 09:42:25
先尝试验证,然后尝试登录
Validating Multiple Fields http://laravel.com/docs/4.2/validation
https://stackoverflow.com/questions/28670668
复制相似问题