Laravel相同的cookie值

时间:2018-09-25 08:25:24

标签: php laravel cookies

我在设置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'));

结果仍然相同

3 个答案:

答案 0 :(得分:1)

通过Laravel设置的Cookie被加密/签名。如果您使用

$cookieAValue = Cookie::get('cookieA');

在Laravel中,您将获得cookie的实际值。如果您使用浏览器的devtools查看cookie,则会看到加密值。

https://laravel.com/docs/5.7/requests#cookies

答案 1 :(得分:0)

此问题解决了我的问题:

Unencrypted cookie in Laravel

App\Http\Middleware\EncryptCookies中 我在protected $except = [];

中添加了cookie名称

现在可以正常工作了:

答案 2 :(得分:0)

您可以使用setcookie函数,它无需加密即可设置cookie

setcookie('CookieName', 'CookieValue', 'CookieLifeTime','CookieRootDirectory');