我有我的身份驗證的用戶,並進行調試,我試圖用解密(因爲它是用encrypt()
加密,以顯示自己的密碼。Laravel decrypt()拋出「DecryptException負載無效。」
爲了簡化問題,我創建了一個新的途徑/test
,我可以看到加密的密碼經過身份驗證的用戶,像這樣的:
Route::get('/test', function() {
dd(Auth::user()->password)
});
這將返回我:$2y$10$gdhYnCekBownWU62OitC6uSwoONfDWGO23FnaVwIgFPAeJI9L6DEa
但是,如果我嘗試使用,它拋出我這個錯誤:
Route::get('/test', function() {
dd(decrypt(Auth::user()->password))
});
DecryptException: The payload is invalid.
我想對這個問題摸索,兩件事情我發現是:
1) 「確保應用程序的關鍵是正確的。」它之前在那裏,但可以肯定的是,我再次運行php artisan key:generate
。什麼也沒有變。
2)「這是一個CSRF問題」。我在web中禁用了中間件內核的csrf,也沒有任何改變。而且我沒有使用發佈請求,所以我懷疑這是我的問題。
我需要它,因爲該方案是這樣的:我需要解密密碼,因爲我事先用這種方法生成一個隨機密碼,並將其保存到數據庫中;我想保持這種方式。
$randomPassword = rand(111111,999999);
$user->password = encrypt($randomPassword);
$user->save();
有誰知道這是什麼原因或如何克服它?
感謝信息的人。顯然,我需要考慮一個新的策略。 – senty
不用擔心隊友,樂意幫忙!想讓它成爲回答? – Kingsley