如何在yii2

时间:2017-03-01 05:52:01

标签: php session yii yii2

我已经开始使用Yii2 basic并且需要存储会话信息。我已经知道在Yii2 basic中,这应该使用像

这样的会话来完成
$session = Yii::$app->session;
$session->open();
$_SESSION["a_id"] = $id;
$_SESSION["w_auth"] = "true";

问题在于,每次关闭浏览器时,我的会话都会过期 无论如何都要保持会话活动或设置会话销毁,所以即使我关闭浏览器并再次打开它。它不会再问我我的用户名或密码。我需要在YII2 Basic中这样做。

2 个答案:

答案 0 :(得分:1)

会话cookie设置7天后过期时间 `

'components' => [
    'session' => [
        'class' => 'yii\web\Session',
        'cookieParams' => ['lifetime' => 7 * 24 *60 * 60]
    ],

`

答案 1 :(得分:0)

您需要使用Cookie。 Cookie是保存在浏览器中的信息。 以下是yii2中的操作方法:

$cookies = Yii::$app->response->cookies;

// add a new cookie to the response to be sent
$cookies->add(new \yii\web\Cookie([
            'name' => 'a_id',
            'value' => $id,
]));

登录时添加上述cookie,然后在您的操作中以这种方式使用它:

$cookies = Yii::$app->response->cookies;

$a_id = $cookies->getValue('a_id');

if($a_id !== null) {
    // user is logged in
}

注意:浏览器的cookie中保存的内容不是您的实际信息,但是当您重新打开浏览器并通过此ID恢复会话时会发送会话ID。您的实际信息保存在您的会话中(在服务器中)。这就是yii 2 cookies的工作原理。