【问题标题】:Add cookie through javascript cause my laravel error通过javascript添加cookie导致我的laravel错误
【发布时间】:2017-05-05 07:03:01
【问题描述】:

所以我尝试使用以下代码添加 cookie:

var anArray = ["eyJpdiI6IkhhNGJDaW5YNklFNFpBUFVGTkhcL3lnPT0iLCJ2YWx1ZSI6Ilp0VVwvYUZiVm5XNDIrSE1xbThOaEN3PT0iLCJtYWMiOiIzYTBmY2RiNDYwNWI5ODljY2MzNjAzYjhkY2FkZjg2OTY4OGE0NTM5NjYyZjE5MzEwYzk1OTJjZTljMDU5ZTBjIn0="];
document.cookie = "myCookie="+JSON.stringify(anArray);

我检查了 Firefox DevTools,它在存储上显示我的 cookie 已成功存储到浏览器。它具有存储长值的“myCookie”名称。

但是,它在我的 laravel 中显示错误

Encrypter.php 第 138 行中的 ErrorException: unserialize(): 偏移量 0 处的错误,共 1 个字节

  1. 在 Encrypter.php 第 138 行
  2. 在 HandleExceptions->handleError(8, '反序列化():在偏移量 0 的 1 个字节处出错', 'C:\xampp\htdocs\motov2\vendor\laravel\framework\src\Illuminate\Encryption\Encrypter.php', 138,数组('有效载荷'=>数组('iv'=>'Ha4bCinX6IE4ZAPUFNH/yg==', '值' => 'ZtU/aFbVnW42+HMqm8NhCw==', 'mac' => '3a0fcdb4605b989ccc3603b8dcadf869688a4539662f19310c9592ce9c059e0c'), 'unserialize' => true, 'iv' => '�)��8d���', 'decrypted' => '1'))
  3. 在 Encrypter.php 第 138 行中的 unserialize('1') 处
  4. 在 Encrypter->decrypt(array('iv' => 'Ha4bCinX6IE4ZAPUFNH/yg==', 'value' => 'ZtU/aFbVnW42+HMqm8NhCw==', 'mac' => '3a0fcdb4605b989ccc3603b8dcadf869688a4539662f19310c9592ce9c059e0c')) 在 EncryptCookies.php 第 95 行
  5. at EncryptCookies->decryptCookie('["eyJpdiI6IkhhNGJDaW5YNklFNFpBUFVGTkhcL3lnPT0iLCJ2YWx1ZSI6Ilp0VVwvYUZiVm5XNDIrSE1xbThOaEN3PT0iLCJtYWMiOiIzYTBmY2RiNDYwNWI5ODljY2MzNjAzYjhkY2FkZjg2OTY4OGE0NTM5NjYyZjE5MzEwYzk1OTJjZTljMDU5ZTBjIn0="]') 在 EncryptCookies.php 第 76 行

感谢您的帮助。

【问题讨论】:

    标签: javascript laravel cookies


    【解决方案1】:

    这是你的 javascript cookie 和 Laravel 的自动 cookie 加密之间的冲突。

    转到 /app/Http/Middleware/EncryptCookies.php 并将您的 cookie 添加到例外列表中:

    protected $except = [
        'myCookie'
    ];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-23
      • 2014-09-25
      • 1970-01-01
      • 2019-05-07
      • 2023-01-12
      • 2012-10-10
      相关资源
      最近更新 更多