如何在 Laravel 中更改密码字段名称

How to change password field name in Laravel

我想更改 Laravel 5.6 中的默认身份验证字段名称,它似乎适用于用户名但不适用于密码。
我查看了这个问题 How to change / Custom password field name for Laravel 4 and Laravel 5 user authentication 并且 Sample data to test 有效但在我的登录表单中无效。

用户名是useUsername
密码是 usePassword

在我的登录表单上,我测试了一些数据 当我尝试使用数据库中的密码散列登录用户时,我得到 These credentials do not match our records.
当我在 db 中使用没有密码哈希的用户登录时,我在 vendor/laravel/framework/src/Illuminate/Auth/EloquentUserProvider.php-> validateCredentials(UserContract $user, array $credentials)

中遇到问题 Undefined index: password

我在 loginController.php

中更改了什么
protected function validateLogin(Request $request)
{
    $this->validate($request, [
        $this->username() => 'required',
        'usePassword' => 'required',
    ]);
}

public function username()
{
    return 'useUsername';
}

protected function credentials(Request $request)
{
    return $request->only($this->username(), 'usePassword');
}

Users.php

protected $table = 't_user';

public function getAuthPassword()
{
    return $this->usePassword;
}

我希望你能帮我解决这个问题,我真的不明白为什么我会得到这些不同的哈希或非哈希错误以及我该如何解决它。
马来西亚

我认为你可以通过在 Laravel 中使用 Bcrypt 来使用散列密码。

喜欢

$password = Hash::make('yourpassword');

基本上,当creating/registering一个新用户

时,你会这样做

然后哈希密码将存储到数据库中。

登录时记住密码,否则会报错...

如果您忘记了哈希密码,那么您可以使用这个密码进行 bcrypt

$password = bcrypt('admin');

希望对您有所帮助...

关于哈希的更多信息你可以访问

Hashing in laravel

我通过自定义 AuthController 解决了我的问题。这是我想做的最简单的事情。