我首先在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 –