【问题标题】:Laravel Auth::Attempt Assuming Separate Password TableLaravel Auth::Attempt 假设单独的密码表
【发布时间】:2017-09-13 19:11:55
【问题描述】:

我将User 表和Password 表分开存储。这样做的原因是为了防止散列密码意外泄漏,如果用户不小心将password 参数放在User$visible 变量中。我不确定这是否过分或没有根据,但这是我的理由。

也就是说,有没有办法告诉Auth::attempt 密码存储在另一个表中,并且需要连接才能访问散列密码?

从教程来看,登录很简单,假设在User表中找到密码字段

if (Auth::attempt(['email' => $email, 'password' => $password])) {
    // Blah
}

由于我是 Laravel 的新手,我环顾四周,找不到在 Laravel 中使用单独的哈希密码表的人,所以我不确定它是否受支持。

【问题讨论】:

    标签: php laravel authentication


    【解决方案1】:

    在底层,attempt() 方法使用一张表来获取凭据。您可以将users 表更改为其他表,但不能仅将密码保存在单独的表中。因此,在这种情况下,您需要创建自己的 attempt() 方法。

    public function customAttempt()
    {
        // Get password and hashed password.
    
        // Verify password.
        return password_verify($value, $hashedValue)
    }
    

    【讨论】:

      猜你喜欢
      • 2018-08-03
      • 2013-08-03
      • 2014-08-27
      • 2018-05-20
      • 2013-04-06
      • 1970-01-01
      • 1970-01-01
      • 2023-03-05
      • 2016-12-30
      相关资源
      最近更新 更多