Yii2 给浏览器添加cookie和获取cookie

 2019-07-26 23:03:58   {{zan}}   34 

有一个功能叫做记住上次登录的方式,能想到的就是在退出或者关闭客户端的时候,给本地加上cookie,在下次打开之前就获取上次存下的cookie来判断上次的登录方式是什么。

具体操作如下:

首先在退出之前,要给浏览器添加cookie:

// 添加cookie
$last_login = 'WeChart';
$cookies = Yii::$app->response->cookies;// 做添加用,也可以读取
$cookies->add(new \yii\web\Cookie([
    'name' => 'last_login',
    'value' => $last_login,
]));

在登录页面打开的时候,就获取cookie,如下:

// 读取cookie
Yii::$app->request->enableCookieValidation = false;
$last_login = Yii::$app->request->cookies->get('last_login'); // 仅能读取
$last_login_type = $last_login ? $last_login->value : '';
Yii::$app->request->enableCookieValidation = true;// 记得打开

这里要说明的是,假如你在打开验证的时候,你是获取不到保存的cookie的,也就是last_login,就算你直接获取$_COOKIE,里面会有last_login,但是也是经过加密后的,得到也没有用。如上操作可以获取后再打开验证。

但是为安全,Yii2官网还是强烈建议打开验证。

还有其他的关于cookie的操作,如:

// 删除cookie
$cookies->remove('last_login');

更多可以查看Yii官网:cookie

提交 清空