【问题标题】:How do you determine the cause of a failed Auth::attempt in Laravel 4?您如何确定 Laravel 4 中 Auth::attempt 失败的原因?
【发布时间】:2014-03-13 03:55:16
【问题描述】:

在 Laravel 4 中对用户进行身份验证时,如果身份验证失败,Auth::attemp(..) 方法将返回 false。有没有办法缩小失败的原因,以便我可以向我的用户指出,例如,密码与用户名是否有误?

谢谢

【问题讨论】:

    标签: authentication laravel laravel-4


    【解决方案1】:

    没有直接的,但你总是可以的:

    if ( ! User::where('email', Input::get('email'))->first())
    {
        /// email's wrong
    }
    else
    {
        if ( ! Auth::attempt(['email' => Input::get('email'), 'password' => Input::get('password')])
        {
            /// password's wrong
        }
    }
    

    如果您需要将此信息提供给您的用户,这样做并没有错。

    【讨论】:

    • 如果您对网站的安全性很敏感,您不应该告诉用户登录尝试失败的原因。如果您不需要太多安全性,请继续。
    • 这是一个在过去几年中被广泛使用的论点,但我认为这是确保安全性的其他方法,例如不让用户尝试同一电子邮件的密码超过在同一分钟左右两次。 Mailchimp 还有其他理由不用担心这种安全问题:blog.mailchimp.com/social-login-buttons-arent-worth-it
    • 有趣的链接@Antonio
    • 如果系统也检查“禁止”用户怎么办(电子邮件/密码组合可以,但禁止标志不行)我希望能够确定错误...
    猜你喜欢
    • 2017-04-28
    • 1970-01-01
    • 2014-10-11
    • 2015-03-27
    • 2013-07-12
    • 1970-01-01
    • 2014-08-27
    • 2014-06-20
    • 1970-01-01
    相关资源
    最近更新 更多