J. *_*ses 2 php laravel laravel-5
您好我需要解密cookie的值.我创建和销毁的代码:
public function setSession($id){
Cookie::queue('userId', $id, 10000);
}
public function destroySession(){
Cookie::queue(Cookie::forget('userId'));
}
Run Code Online (Sandbox Code Playgroud)
但我需要在没有加密的情况下获得cookie的价值.
jed*_*ylo 12
在Web请求上下文中,Cookie通常由EncryptCookies中间件自动加密和解密.所以最简单的选择就是启用这个中间件(并且它在Laravel中默认启用).
如果您需要手动解密任何值,以下操作将起到作用:
// get the encrypter service
$encrypter = app(\Illuminate\Contracts\Encryption\Encrypter::class);
// decrypt
$decryptedString = $encrypter->decrypt($encryptedString);
Run Code Online (Sandbox Code Playgroud)
检查EncryptCookies中间件的代码,以了解有关内部功能的更多信息.
默认情况下 Crypt::decrypt 尝试反序列化该值,而您的值未序列化,这就是您收到错误的原因。您需要传递第二个参数,例如:
Crypt::decrypt(Cookie::get('userId'), false);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6817 次 |
| 最近记录: |