Yii2以不同的格式存储cookie

时间:2015-12-23 12:57:37

标签: cookies yii2

我使用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,
                ]));                
            }

1 个答案:

答案 0 :(得分:3)

它已经完成了cookie验证,可以保护cookie不被客户端修改。

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

您可以在Guide - Sessions and Cookies

中找到详细说明

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

访问它