我想更改Laravel 5.6中的默认auth字段名称,它看起来像是用于用户名而不是用于密码。
我查看了这些问题How to change / Custom password field name for Laravel 4 and Laravel 5 user authentication和Sample data to test
,但不是我的登录表单。
用户名为useUsername
密码为usePassword
在我的登录表单上,我测试了一些数据
当我尝试使用db中的密码哈希用户进行日志记录时,我得到These credentials do not match our records
当我在db中使用没有密码哈希的用户登录时,我在Undefined index: password
vendor/laravel/framework/src/Illuminate/Auth/EloquentUserProvider.php-> validateCredentials(UserContract $user, array $credentials)
我在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;
}
我希望你能帮我解决这个问题,我真的不明白为什么我会用哈希或不哈希得到这些不同的错误以及我如何解决它。
MYT。
答案 0 :(得分:0)
我可以在Laravel中使用Bcrypt来使用哈希密码。
喜欢
$ password = Hash :: make(' yourpassword');
基本上,您在创建/注册新用户时会这样做
然后哈希密码将存储到数据库中。
当您登录时,您可以记住您的密码,否则会给您错误...
如果您忘记了哈希密码,那么您可以使用此密码来加密密码
$ password = bcrypt(' admin');
我希望这会对你有帮助......
有关哈希的更多信息,您可以访问
答案 1 :(得分:0)
我通过自定义AuthController解决了我的问题。这对我想做的事情来说是最简单的。