我已经实现了数据库播种器以在用户(默认)凭据中播种。
Admin::create(['name' => 'Super Admin', 'email' => 'admin@demo.in', 'password' => bcrypt('password') ]);
运行种子后,我收到了成功消息。但是当我尝试登录时,它表示您的凭证不匹配。这有什么特别的原因吗?我们不能用bcrypt ??
来播种用户数据答案 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)
好的,一些要点:
如果您使用User模型进行播种,请确保您没有 如果您有更改器,则对密码进行两次哈希处理可能会发生 在模型中为“密码”列设置。
请注意在浏览器中保存的密码,更喜欢编写 明确显示您的用户名和密码(在这种情况下)。
最后检查您的用户名/电子邮件或密码中是否没有错字。 (那是我的情况?♂️)