我在设置cookie时遇到了问题。在我重定向后,我想把一些数据放在cookie中供客户端使用,但问题是cookie的值。
我使用该表单来设置cookie:
return redirect($url)
->withCookie(cookie('cookieA', 'valueA'))
->withCookie(cookie('cookieB', 'valueB'));
在客户端重定向到$url
之后,当我偷偷进入cookies时,我看到了这些值:
XSRF-TOKEN : eyJpdiI6ImxEUko5T0EzVG1cLzRLa09sQk0rZHdB...
cookieA : eyJpdiI6ImxEUko5T0EzVG1cLzRLa09sQk0rZHdB...
cookieB : eyJpdiI6ImxEUko5T0EzVG1cLzRLa09sQk0rZHdB...
laravel_session : L7hsdCD6hQBvX1FDM2biFZ3As...
似乎Laravel以某种方式改变了cookie的值。
我试过了:
Cookie::queue('cookieA', 'valueA', 45000);
withCookie(cookie()->forever('cookieA', 'valueA'));
仍然是相同的结果
发布于 2018-09-25 08:37:26
通过Laravel设置的Cookie是加密/签名的。如果您使用
$cookieAValue = Cookie::get('cookieA');
在Laravel中,您将获得cookie的实际值。如果你使用浏览器的devtools来查看cookie,你会看到加密值。
发布于 2018-09-25 08:52:26
这个问题解决了我的问题:
在App\Http\Middleware\EncryptCookies
中,我在protected $except = [];
中添加了我的cookie名称
现在它可以工作了c:
发布于 2018-09-25 09:53:39
你可以使用setcookie函数来设置cookie而不加密
setcookie('CookieName', 'CookieValue', 'CookieLifeTime','CookieRootDirectory');
https://stackoverflow.com/questions/52493705
复制