Laravel Cookie无法获取到数据,值为null

设置一个cookie,用Cookie::get('name');     $request->cookie('name'); 等无法获取到数据

原因:Laravel 框架内,出于安全的原因考虑,默认对所有 cookie 进行加密存储,而未被加密过得cookie则被laravel认为是无效的所以返回null

可以用:$_COOKIE['name'];

解决办法

找到 App\Http\Middleware\EncryptCookies 文件, 设置好需要过滤的cookie:

<?php

namespace App\Http\Middleware;

use Illuminate\Cookie\Middleware\EncryptCookies as BaseEncrypter;

class EncryptCookies extends BaseEncrypter
{
    /**
     * The names of the cookies that should not be encrypted.
     *
     * @var array
     */
    protected $except = [
        'cookie_name', //cookie名称
    ];
}

有时,你想设置一个 Cookie 是不加密的,例如想用来跟 JS 交互,JS 可以直接读取到明文,可是以下面的代码设置后:

Cookie::queue('cookie_name', 'hello', 99999999);

如果要给 JS 读取的话,要把 cookie 的 http only 属性去掉,使用以下代码:

Cookie::queue('cookie_name', 'hello', $minutes = 99999999, $path = null, $domain = null, $secure = false, $httpOnly = false);

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值