2017-03-01 11 views
0

私はYii2を基本的に使い始めており、セッション情報を保存する必要があります。私はすでに基本的なYii2で、これはこれで問題はブラウザが私のセッションが を期限切れに閉じされるたびにセッションを存続するためにとにかくまたは設定されたセッションが存在することであるyii2で生涯セッションを作成するには

$session = Yii::$app->session; 
$session->open(); 
$_SESSION["a_id"] = $id; 
$_SESSION["w_auth"] = "true"; 

のようなセッションを使用して行われるべきであることを知っていますブラウザを閉じてもう一度開いても破壊されます。ユーザー名やパスワードを入力するように私に再度尋ねることはありません.YII2 Basicでこれを行う必要があります。

+0

先進的なテンプレートでは既に実装されていますので、参照することができます。 Yii2は、これを達成するためにCookieベースのログインを使用します。 – Chinmay

+0

私はyii2基本アプリ –

+0

を使用していますが、それはできません!代わりにクッキーを使用する – Kazz

答えて

1

セッションクッキーは、あなたがこのためにクッキーを使用する必要が7日 `

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

`

0

後の時間を期限切れに設定してください。 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, 
])); 

は、上記のクッキーを追加します。

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

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

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

注:あなたのクッキーに保存されて何をブラウザはあなたの実際の情報ではありませんが、あなたがブラウザを開いてこのIDでセッションを復元すると、セッションIDとこれが送信されます。あなたの実際の情報は、あなたのセッション(サーバー内)に保持されます。これはyii 2クッキーの仕組みです。

関連する問題