【问题标题】:Laravel auth::atempt get only hashed passwordLaravel auth::attempt 只获取哈希密码
【发布时间】:2018-05-20 02:02:45
【问题描述】:

我在 CRM 中创建了帐户并在其中创建了哈希密码。

$account->password = bcrypt($password);

然后在我的网站上我创建了一些守卫和提供者:

 'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],
        'api' => [
            'driver' => 'token',
            'provider' => 'users',
        ],
        'business' => [
            'driver' => 'session',
            'provider' => 'business'
        ]
    ],

 'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\Models\Eloquent\Account::class,
        ],
        'business' => [
            'driver' => 'eloquent',
            'model'  => App\Models\Eloquent\BusinessAccounts::class
        ]
    ],

然后尝试用门卫业务登录账号:

public function login(BusinessLoginRequest $request)
    {
        $orgNumber = $request->input('orgNumber');
        $password = $request->input('password');

        if(Auth::guard('business')->attempt(['orgNumber' => $orgNumber, 'password' => $password ])) {
                var_dump(\auth('business')->user());
        }

    }

我的模型看起来像:

class BusinessAccounts extends Model implements Authenticatable
{
    use \Illuminate\Auth\Authenticatable;

    protected $table = 'business_accounts';

    protected $fillable =
        [
            'orgNumber', 'password'
        ];

    public $timestamps = false;

}

但是当我尝试使用未散列的密码登录和 var_dump 用户时,我有空白屏幕,当我尝试从我的数据库中输入散列密码时,我可以看到商业帐户模型。 我的代码有什么问题? 我怎么能理解 Auth::atempt 只是用 db-password 检查登录密码的值,当然,不一样。 我已经阅读了许多指南和文章,但找不到错误, 我知道这很简单,但我不明白。

【问题讨论】:

    标签: php laravel laravel-5


    【解决方案1】:

    在使用attempt 函数时,您不需要使用bcrypt。由于您已经将哈希密码存储在数据库中,因此您只需比较由 attempt 函数完成的密码即可。

    所以只需删除 bcrypt 并按原样通过

    $account->password = $password;
    

    来自docs

    如果找到用户,存储在数据库中的哈希密码将 与通过传递给方法的密码值进行比较 大批。您不应该对指定为密码的密码进行哈希处理 值,因为框架会自动散列之前的值 将其与数据库中的哈希密码进行比较。

    【讨论】:

    • 我只在通过 CRM 将模型保存在数据库中时才使用 bcrypt。我不使用 bcrypt 登录
    猜你喜欢
    • 2013-04-06
    • 2013-07-12
    • 2014-08-27
    • 2017-11-30
    • 1970-01-01
    • 2017-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多