首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拉威尔:八月::时间-为什么认证失败?

拉威尔:八月::时间-为什么认证失败?
EN

Stack Overflow用户
提问于 2015-02-23 09:38:08
回答 5查看 2K关注 0票数 2

我用条件对用户进行身份验证,如果

用户角色= 1登录应该成功否则登录失败

现在我要做的是:

代码语言:javascript
复制
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');
}

它运行良好,但当身份验证失败时,我希望能够找出失败的原因,因此我将能够根据身份验证失败的原因显示以下消息:

  • 不存在电子邮件地址
  • 错误的密码
  • 错误的用户角色。

有办法做这些事吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-02-23 10:06:35

多亏了“轮班交换”,我才弄明白了这一点:

代码语言:javascript
复制
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');
    }
}

这个成功了!!

票数 0
EN

Stack Overflow用户

发布于 2015-02-23 09:45:08

诀窍是在失败部分使用Auth::validate()。你需要做几个验证才能解决问题所在

代码语言:javascript
复制
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
    } 
}
票数 3
EN

Stack Overflow用户

发布于 2015-02-23 09:42:25

先尝试验证,然后尝试登录

代码语言:javascript
复制
  Validating Multiple Fields 

http://laravel.com/docs/4.2/validation

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28670668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档