Laravel 5 db:播种用户名和密码,但不登录时进行身份验证

时间:2015-06-29 11:48:15

标签: authentication laravel laravel-5

我已经实现了数据库播种器以在用户(默认)凭据中播种。

Admin::create(['name' => 'Super Admin', 'email' => 'admin@demo.in', 'password' => bcrypt('password') ]);

运行种子后,我收到了成功消息。但是当我尝试登录时,它表示您的凭证不匹配。这有什么特别的原因吗?我们不能用bcrypt ??

来播种用户数据

3 个答案:

答案 0 :(得分:3)

如果我们谈论Laravel 5的默认AuthController,显然不会,你不能:

protected function create(array $data)
{
    return User::create([
        'name' => $data['name'],
        'email' => $data['email'],
        'password' => bcrypt($data['password']),
    ]);
}

如果您查看create()功能,可以看到作为密码提交的数据是自动加密的。因此,如果您也密码密码,则会再次加密。

答案 1 :(得分:0)

我是这样从种子机将数据插入到用户表中的:

DB::table('users')->insert([
        'Email' => 'admin@QualityBooks.co.nz',
        'Name' => 'Administrator',
        'PhoneNumber' => '00000',
        'Password' => bcrypt('P@ssw0rd'),
        'isEnabled' => true,
        'isAdmin' => true
        ]);

这对我有用,我可以使用默认的身份验证控制器登录。

答案 2 :(得分:0)

好的,一些要点:

  1. 如果您使用User模型进行播种,请确保您没有 如果您有更改器,则对密码进行两次哈希处理可能会发生 在模型中为“密码”列设置。

  2. 请注意在浏览器中保存的密码,更喜欢编写 明确显示您的用户名和密码(在这种情况下)。

  3. 最后检查您的用户名/电子邮件或密码中是否没有错字。 (那是我的情况?‍♂️)