我在设置Cookie时遇到问题。重定向后,我想将一些数据放在cookie中供客户端使用,并且它可以正常工作,但问题是cookie值。
我使用该表格设置Cookie:
return redirect($url)
->withCookie(cookie('cookieA', 'valueA'))
->withCookie(cookie('cookieB', 'valueB'));
然后,该客户端重定向到$url
,当我偷偷进入Cookie时,我看到了这些值:
XSRF-TOKEN : eyJpdiI6ImxEUko5T0EzVG1cLzRLa09sQk0rZHdB...
cookieA : eyJpdiI6ImxEUko5T0EzVG1cLzRLa09sQk0rZHdB...
cookieB : eyJpdiI6ImxEUko5T0EzVG1cLzRLa09sQk0rZHdB...
laravel_session : L7hsdCD6hQBvX1FDM2biFZ3As...
Laravel似乎以某种方式更改了cookie值。
我已经尝试过:
Cookie::queue('cookieA', 'valueA', 45000);
withCookie(cookie()->forever('cookieA', 'valueA'));
结果仍然相同
答案 0 :(得分:1)
通过Laravel设置的Cookie被加密/签名。如果您使用
$cookieAValue = Cookie::get('cookieA');
在Laravel中,您将获得cookie的实际值。如果您使用浏览器的devtools查看cookie,则会看到加密值。
答案 1 :(得分:0)
此问题解决了我的问题:
在App\Http\Middleware\EncryptCookies
中
我在protected $except = [];
现在可以正常工作了:
答案 2 :(得分:0)
您可以使用setcookie函数,它无需加密即可设置cookie
setcookie('CookieName', 'CookieValue', 'CookieLifeTime','CookieRootDirectory');