越努力,越幸运

Laravel Cookie

 2 years ago

第一步:引入Cookie类

use Illuminate\Support\Facades\Cookie;

第二步:要存储的Cookie

$cookieVal = Cookie::make('cookieName', $cookievalue, $cookieTime);

到这一步有些小伙伴可能发现,打印上面的Cookie好像可以得到对应的Cookie值,然后去测试的时候,就会发现为什么Cookie没有存储起来呢?这里就要来说说Laravel框架使用Cookie时就得提到Response和Request。有些开发者可能会在请求地址的Response Headers和Request Headers中,都含有Cookie信息,所以使用Laravel的Cookie是离不开Response和Request的,好了,继续来看看如何操作吧。

第三步:通过Response的withCookie附加到响应

return response()->withCookie($cookieVal);

这时候就会惊奇的发现,想要的Cookie出来了,功夫不负有人心。 还有Laravel框架中,默认对所有Cookie进行加密存储,如果需要不是加密的Cookie

解决方案:

添加到App\Http\Middleware\EncryptCookies的排除名单中: 在$except这个属性的数组中添加上排除的Cookie,然后你就可以发现这个Cookie不是加密的了。
当然也可以看summer大牛的[【小技巧分享】在 Laravel 中设置没有加密的cookie][1]

如何获取Cookie呢?

可以通过$request->cookie('cookieName')来获取对应的Cookie