用户认证问题:laravel 5.1中的问题

3
我正在使用Laravel 5.1中内置的注册和登录代码。
我已经成功地进行了注册并保存了凭据。
问题在于,当我尝试登录时,它会显示“这些凭据与我们的记录不匹配”。
postLogin方法中,我看到了以下代码:$credentials = $this->getCredentials($request);,并且当我打印$credentials的值时发现Password的值是明文。
也许这就是下面的行始终说找不到用户的原因。
if (Auth::attempt($credentials, $request->has('remember'))) {

请为我提供路径建议。

使用bcrypt()函数将您的密码加密成正确的格式。 - goldlife
这是否意味着Laravel 5.1身份验证模板中存在Bug?对不起,我的意思是,内置的身份验证模板中是否缺少“身份验证时密码加密”功能? - Pankaj
您的密码是否在用户表中加密,还是以明文形式存储在数据库中? 您是否可能有另一个字段用于用户名?通常这是电子邮件列...您的数据库中是否有此字段? - goldlife
好的,我觉得我没有清楚地解释这件事情。当我创建用户时,代码是这样的 bcrypt($data['Password']) - Pankaj
2个回答

0
你应该使用bcrypt来加密用户密码。
$user = new App\User;
$user->email = 'test@test.com';
$user->password = bcrypt('plain-text-password');
$user->save();

Hash::check方法允许您验证给定的明文字符串是否对应于给定的哈希值。
if (Hash::check('plain-text-password', $hashedPassword)) {
    // The passwords match...
}

我们在vendor\laravel\framework\src\Illuminate\Foundation\Auth\AuthenticatesUsers.php中有一个名为 PostLogin 的POST方法。问题:我应该在哪里编写bcrypt代码?之所以问这个问题,是因为postLogin方法具有Request类型的参数。 - Pankaj
当您添加新用户时,应编写 bcrypt - Peter Kota
那部分已经在注册代码中完成了。问题出现在PostLogin的身份验证过程中。 - Pankaj

0

我在框架中进行了许多更改。这些更改包括在用户表中添加新列和代码更改。还将password更改为Password。然后我意识到,在Authenticatable classgetAuthPassword函数中,它必须是Password而不是password


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接