【问题标题】:Yii2 store cookies in different formatYii2 以不同的格式存储 cookie
【发布时间】:2015-12-23 23:23:59
【问题描述】:

我正在使用 yii2 的 cookie 类和下面的代码在服务器端设置 cookie,但是当我使用 javascript 在客户端获取它时,它会以不同的格式打印,例如 3ab2e6b31664352c0398b57bd98720da925d1254d476f4d7c4e7c29ce71c0c14a:2:{i:0;s:3:"uid";i:1;i:1;} 什么是原因以及获取的正确方法是什么uid 的值?

            $cookies = Yii::$app->response->cookies;
            if (!$cookies->has('uid')){
                $cookies->add(new \yii\web\Cookie([
                    'name' => 'uid',
                    'value' => Yii::$app->user->identity->id,
                    'httpOnly' => false,
                ]));                
            }

【问题讨论】:

    标签: cookies yii2


    【解决方案1】:

    这是为 cookie 验证完成的,它可以防止 cookie 在客户端被修改。

    您的字符串是一个序列化的Cookie 对象,使用hash_hmac PHP 函数使用[yii\web\Request::$cookieValidationKey}(http://www.yiiframework.com/doc-2.0/yii-web-request.html#$cookieValidationKey-detail) 签名。

    详细解释可以在Guide - Sessions and Cookies找到。

    强烈建议不要关闭 cookie 验证。如果您仍想使用未签名的 cookie,请使用 setcookie() 函数手动设置它。请注意,它在Yii::$app->request->cookie 中不可用,您应该通过$_COOKIE 访问它

    【讨论】:

      猜你喜欢
      • 2018-11-09
      • 2010-10-29
      • 1970-01-01
      • 1970-01-01
      • 2010-10-22
      • 2019-04-20
      • 1970-01-01
      • 2019-04-18
      • 1970-01-01
      相关资源
      最近更新 更多