【问题标题】:How to read laravel_session cookies saved in cookie memory of browser in client side?如何在客户端读取保存在浏览器cookie内存中的laravel_session cookie?
【发布时间】:2017-10-21 19:10:05
【问题描述】:

我有一个基于 laravel 和 angular 的应用程序,我想从客户端读取 cookie 到服务器端,但我无法读取它。谁能告诉我如何读取 cookie。

【问题讨论】:

  • 你试过“$val = Cookie::get('COOKIE_NAME');”吗?
  • 默认 laravel_session cookie 是 HTTP_ONLY 所以你不能用 js 操作它们。
  • 解决方案是什么@AlexSlipknot

标签: php angularjs laravel laravel-5.4


【解决方案1】:

默认情况下 laravel_session cookie 是 HTTP_ONLY 所以你不能用 js 来操作它们。 但是您可以通过添加来更改your_project\config\session.php 中的此标志

'http_only' => false

【讨论】:

  • @parthi 你如何尝试获取 cookie?
  • 我只是用这个方法..Cookie::get('COOKIE_NAME');
  • @parthi 所以你在后端读取cookie?为什么?因为你已经有了会话变量和会话的 id
  • 这是个好主意...但我有单独的 cookie 显示在浏览器上..
  • 嗯,对不起,我完全没听懂。你想得到什么?
【解决方案2】:

就像提到的@AlexSlipknot 一样。您需要更改设置以允许 JavaScript 访问 cookie。

config/session.php文件中的值改为false

/*
|--------------------------------------------------------------------------
| HTTP Access Only
|--------------------------------------------------------------------------
|
| Setting this value to true will prevent JavaScript from accessing the
| value of the cookie and the cookie will only be accessible through
| the HTTP protocol. You are free to modify this option if needed.
|
*/

'http_only' => true,

另请注意,laravel cookie 由应用程序动态加密和解密。即使您读取 cookie,它也是加密的值。如果您需要在不加密的情况下访问和修改某些 cookie,则需要将这些 cookie 添加到加密除外列表中。

您可以在文件app/Http/Middleware/EncryptCookies.php中添加cookie以跳过加密

protected $except = [
    //
];

【讨论】:

    【解决方案3】:

    我刚刚发布了一个我认为也可能相关的相关问题的答案,因为我相信您正在处理服务器中的客户端 cookie:How to work with cookies in Laravel 5.2

    【讨论】:

      猜你喜欢
      • 2019-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-19
      • 2015-09-11
      • 1970-01-01
      • 1970-01-01
      • 2021-03-09
      相关资源
      最近更新 更多