我首先在Laravel中创建了一个Web应用程序。现在我正在使用Ionic Frame工作来开发其移动应用程序。
使用laravel时,laravel会将密码转换为加密密码。 现在,在Ionic与Laravel集成API时,通过登录功能,我遇到了一个问题,如何将通过Mobile App输入的密码与laravel表中的加密密码进行比较。
如果它本来是web App那么它的工作正常,但对于API集成我正面临这个问题。请帮帮我
答案 0 :(得分:5)
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在每个哈希函数上生成随机盐;使每个哈希值与数据库中的原始哈希密码不同,作为附加安全措施。请改用第一种方式。
答案 1 :(得分:1)
Hash :: check是最好的方法。
if(Hash::check('plain password', 'encrypted password')){
//enter your code
}
答案 2 :(得分:0)
与password_hash的结果进行比较(' rasmuslerdorf',PASSWORD_DEFAULT)。" \ n";