这些凭据与我们的记录不符
These credentials do not match our records
我有一个 laravel 的应用程序,其中我有不同的用户和不同的角色。我使用 seeder 在我的数据库中插入了一些用户、角色、role_user、权限和 permission_role,但是,当我尝试使用已记录在数据库中的电子邮件和密码登录时,我得到:这些凭据与我们的不匹配记录。
这是 UserTableSeeder :
public function run()
{
//
$user = [
[
'name' => 'admin',
'email' => 'admin@mail.co',
'password' => 'passwordadmin'
],
[
'name' => 'president',
'email' => 'President@mail.co',
'password' => 'passwordpresident'
],
[
'name' => 'utilisateur1',
'email' => 'utilisateur1@mail.co',
'password' => 'passworduser'
],
[
'name' => 'utilisateur2',
'email' => 'utilisateur2@mail.co',
'password' => 'passworduser'
]
];
foreach ($user as $key => $value) {
User::create($value);
}
}
角色表播种机:
public function run()
{
//
$role = [
[
'name' => 'admin',
'display_name' => 'Administrateur',
'description' => 'Administrateur du système'
],
[
'name' => 'president',
'display_name' => 'Président',
'description' => 'President de la commune'
],
[
'name' => 'utilisateur_normal',
'display_name' => 'membre du conseil',
'description' => 'membre du conseil'
]
];
foreach ($role as $key => $value) {
Role::create($value);
}
}
角色用户表播种机:
public function run()
{
//
DB::table( 'role_user' )->insert([
[ 'user_id' => 6, 'role_id' => 4 ],
[ 'user_id' => 7, 'role_id' => 5 ],
[ 'user_id' => 8, 'role_id' => 6 ],
[ 'user_id' => 9 , 'role_id' => 6 ],
]);
}
我拥有的模型:用户、角色、权限。
有什么想法吗?
正如 Troyer 所说,您需要使用 bcrypt 对它们进行哈希处理。 Laravel 为 \Hash::make($str) 提供了一个方便的包装器。
使用明文密码是非常糟糕的做法。
您需要像这样运行您的播种机:
public function run()
{
$users = [
[
'name' => 'admin',
'email' => 'admin@mail.co',
'password' => \Hash::make('passwordadmin') // Hash them in order to make use of \Auth library (and more importantly, in order not to be a dick to your users)
],
[
'name' => 'president',
'email' => 'President@mail.co',
'password' => \Hash::make('passwordpresident')
],
[
'name' => 'utilisateur1',
'email' => 'utilisateur1@mail.co',
'password' => \Hash::make('passworduser')
],
[
'name' => 'utilisateur2',
'email' => 'utilisateur2@mail.co',
'password' => \Hash::make('passworduser')
]
];
User::create($users); // Import them with 1 query for performance
}
看来您没有将密码散列到数据库中,您需要使用 bycript
:
public function run()
{
//
$user = [
[
'name' => 'admin',
'email' => 'admin@mail.co',
'password' => bcrypt('passwordadmin')
],
[
'name' => 'president',
'email' => 'President@mail.co',
'password' => bcrypt('passwordpresident')
],
[
'name' => 'utilisateur1',
'email' => 'utilisateur1@mail.co',
'password' => bcrypt('passworduser')
],
[
'name' => 'utilisateur2',
'email' => 'utilisateur2@mail.co',
'password' => bcrypt('passworduser')
]
];
foreach ($user as $key => $value) {
User::create($value);
}
}
上查看更多播种器示例
我有一个 laravel 的应用程序,其中我有不同的用户和不同的角色。我使用 seeder 在我的数据库中插入了一些用户、角色、role_user、权限和 permission_role,但是,当我尝试使用已记录在数据库中的电子邮件和密码登录时,我得到:这些凭据与我们的不匹配记录。
这是 UserTableSeeder :
public function run()
{
//
$user = [
[
'name' => 'admin',
'email' => 'admin@mail.co',
'password' => 'passwordadmin'
],
[
'name' => 'president',
'email' => 'President@mail.co',
'password' => 'passwordpresident'
],
[
'name' => 'utilisateur1',
'email' => 'utilisateur1@mail.co',
'password' => 'passworduser'
],
[
'name' => 'utilisateur2',
'email' => 'utilisateur2@mail.co',
'password' => 'passworduser'
]
];
foreach ($user as $key => $value) {
User::create($value);
}
}
角色表播种机:
public function run()
{
//
$role = [
[
'name' => 'admin',
'display_name' => 'Administrateur',
'description' => 'Administrateur du système'
],
[
'name' => 'president',
'display_name' => 'Président',
'description' => 'President de la commune'
],
[
'name' => 'utilisateur_normal',
'display_name' => 'membre du conseil',
'description' => 'membre du conseil'
]
];
foreach ($role as $key => $value) {
Role::create($value);
}
}
角色用户表播种机:
public function run()
{
//
DB::table( 'role_user' )->insert([
[ 'user_id' => 6, 'role_id' => 4 ],
[ 'user_id' => 7, 'role_id' => 5 ],
[ 'user_id' => 8, 'role_id' => 6 ],
[ 'user_id' => 9 , 'role_id' => 6 ],
]);
}
我拥有的模型:用户、角色、权限。
有什么想法吗?
正如 Troyer 所说,您需要使用 bcrypt 对它们进行哈希处理。 Laravel 为 \Hash::make($str) 提供了一个方便的包装器。
使用明文密码是非常糟糕的做法。
您需要像这样运行您的播种机:
public function run()
{
$users = [
[
'name' => 'admin',
'email' => 'admin@mail.co',
'password' => \Hash::make('passwordadmin') // Hash them in order to make use of \Auth library (and more importantly, in order not to be a dick to your users)
],
[
'name' => 'president',
'email' => 'President@mail.co',
'password' => \Hash::make('passwordpresident')
],
[
'name' => 'utilisateur1',
'email' => 'utilisateur1@mail.co',
'password' => \Hash::make('passworduser')
],
[
'name' => 'utilisateur2',
'email' => 'utilisateur2@mail.co',
'password' => \Hash::make('passworduser')
]
];
User::create($users); // Import them with 1 query for performance
}
看来您没有将密码散列到数据库中,您需要使用 bycript
:
public function run()
{
//
$user = [
[
'name' => 'admin',
'email' => 'admin@mail.co',
'password' => bcrypt('passwordadmin')
],
[
'name' => 'president',
'email' => 'President@mail.co',
'password' => bcrypt('passwordpresident')
],
[
'name' => 'utilisateur1',
'email' => 'utilisateur1@mail.co',
'password' => bcrypt('passworduser')
],
[
'name' => 'utilisateur2',
'email' => 'utilisateur2@mail.co',
'password' => bcrypt('passworduser')
]
];
foreach ($user as $key => $value) {
User::create($value);
}
}
上查看更多播种器示例