我有我的身份验证的用户,并进行调试,我试图用解密(因为它是用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