我首先在Laravel中创建了一个Web应用程序。现在我正在使用Ionic Frame工作开发其移动应用程序。如何将字符串密码与laravel进行比较加密密码
在使用laravel时,laravel将密码转换为其加密。 现在,在使用Ionic与Laravel集成API的同时,我正面临一个问题:如何将通过移动应用程序输入的密码与laravel表中的加密密码进行比较。
如果它本来是Web应用程序,那么它的工作正常,但对于API集成我正面临着这个问题。请帮助我
我首先在Laravel中创建了一个Web应用程序。现在我正在使用Ionic Frame工作开发其移动应用程序。如何将字符串密码与laravel进行比较加密密码
在使用laravel时,laravel将密码转换为其加密。 现在,在使用Ionic与Laravel集成API的同时,我正面临一个问题:如何将通过移动应用程序输入的密码与laravel表中的加密密码进行比较。
如果它本来是Web应用程序,那么它的工作正常,但对于API集成我正面临着这个问题。请帮助我
2种方式:
1.
$hashedPassword = User::find(1)->password;
if (Hash::check('plain-text-password', $hashedPassword)) {
// The passwords match...
}
2.
$hashedPassword = User::find(1)->password;
if (Hash::make('plain-text-password') === $hashedPassword) {
// The passwords match...
}
然而,作为官方文件说,作为一个亲DRY(不要重复自己)方法,如果您使用Laravel附带的LoginController,则您可能不需要直接使用这两种方式,因为它会自动完成第一种方式安以轩。
编号:https://laravel.com/docs/5.4/hashing
重要更新
张贴在这里不起作用,因为Laravel生成每个哈希函数随机盐的第二种方法;使每个散列与数据库中的原始散列密码不同,作为附加安全措施。改用第一种方法。
与password_hash('rasmuslerdorf',PASSWORD_DEFAULT)的结果进行比较。“\ n”;
Hash :: check是最好的方法。
if(Hash::check('plain password', 'encrypted password')){
//enter your code
}
为什么你需要这样做?你有Auth门面:'Auth :: attempt(['email'=> $ email,'password'=> $ password])''返回true/false –