通过javascript添加Cookie导致我的laravel错误

时间:2017-05-05 07:03:01

标签: javascript laravel cookies

所以我尝试使用以下代码添加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. at HandleExceptions-> handleError(8, 'unserialize():错误偏移量为0个字节', 'C:\ XAMPP \ htdocs中\ motov2 \厂商\ laravel \框架\ SRC \照亮\加密\ Encrypter.php', 138,array('payload'=> array('iv'=>'Ha4bCinX6IE4ZAPUFNH / yg ==', 'value'=> 'ZtU / aFbVnW42 + HMqm8NhCw ==','mac'=> '3a0fcdb4605b989ccc3603b8dcadf869688a4539662f19310c9592ce9c059e0c'), 'unserialize'=>是的,'iv'=> ' ) 8d ','decrypted'=> '1'))
  3. 在Encrypter.php第138行中的unserialize('1')
  4. at Encrypter-> decrypt(array('iv'=>'Ha4bCinX6IE4ZAPUFNH / yg ==','value' => 'ZtU / aFbVnW42 + HMqm8NhCw ==','mac'=> '3a0fcdb4605b989ccc3603b8dcadf869688a4539662f19310c9592ce9c059e0c')) 在EncryptCookies.php第95行
  5. 在EncryptCookies-> decryptCookie( '[ “eyJpdiI6IkhhNGJDaW5YNklFNFpBUFVGTkhcL3lnPT0iLCJ2YWx1ZSI6Ilp0VVwvYUZiVm5XNDIrSE1xbThOaEN3PT0iLCJtYWMiOiIzYTBmY2RiNDYwNWI5ODljY2MzNjAzYjhkY2FkZjg2OTY4OGE0NTM5NjYyZjE5MzEwYzk1OTJjZTljMDU5ZTBjIn0 =”]') 在EncryptCookies.php第76行
  6. 先谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

这是您的javascript Cookie与Laravel的自动Cookie加密之间的冲突。

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

protected $except = [
    'myCookie'
];