You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Vue中解密Laravel生成的加密Cookie

解决Laravel加密Cookie在Vue中获取真实值的问题

方法一:让Laravel跳过指定Cookie的加密(推荐方案)

Laravel默认会加密所有Cookie,但你可以指定某些Cookie不加密,步骤如下:

  • 打开项目中的 app/Http/Middleware/EncryptCookies.php 文件
  • 在 $except 数组里添加你的Cookie名称:
protected $except = [
    'myCookieName',
];

设置完成后,再次通过 return response('Hello World')->cookie('myCookieName', 'MyValue', 0); 生成的Cookie就是明文,Vue中用 this.$cookie.get('myCookieName') 就能直接拿到真实值 MyValue。

方法二:后端提供解密接口(适用于必须加密Cookie的场景)

由于Laravel的加密依赖项目的APP_KEY,前端无法安全获取密钥进行解密,所以更安全的方式是后端提供解密接口:

  1. 在Laravel中添加路由:
Route::get('/decrypt-cookie', function () {
    $encryptedValue = request()->cookie('myCookieName');
    $decryptedValue = decrypt($encryptedValue);
    return response()->json(['value' => $decryptedValue]);
});
  1. 在Vue中请求该接口获取解密后的值:
// 假设你已经引入了axios
axios.get('/decrypt-cookie')
  .then(res => {
      console.log(res.data.value); // 输出MyValue
  })
  .catch(err => {
      console.error('解密失败:', err);
  });

注意:不要尝试前端直接解密

Laravel的加密逻辑需要用到项目的APP_KEY,如果把密钥暴露到前端代码中,会导致严重的安全隐患,绝对不要这么做。

内容的提问来源于stack exchange,提问作者Kenneth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 20:25:30