2017-05-17 3 views
0

Ich möchte Benutzer, die Anmeldung mit einem Benutzernamen zu beenden, ich speichern Sitzung in Mongodb und Sitzung löschen und ändern Auth_key in Mysql Benutzertabelle, und dieser Benutzer werfen Website out.Aber Probleme haben, wenn ich alle Auth Schlüssel die Benutzer ändern, die an mich erinnern kontrolliert, protokolliert throw site, ich speichern auth_key in Sitzung db mongodb auf unterschiedliche Weise ich zuerst Auth Schlüssel auf diese Weise (web.php) speichernBenutzer nach Sitzung und Cookie (auth_key) beenden

'session' => [ 
 
'class' => 'yii\mongodb\Session', 
 
'writeCallback' => function($session) 
 
{ 
 
    return [ 
 
      'user_id' => Yii::$app->user->id, 
 
      'agent' => Yii::$app->request->getUserAgent(), 
 
      'ip' => Yii::$app->request->getUserIP(), 
 
      'auth_key' => Yii::$app->security->generateRandomString(), 
 
     ]; 
 
     } 
 
],

Aber das Problem in jeder Aktualisierung der Seite haben auth_key ist regenerate,

Eine andere Art, wie ich es tue, überschreibe ich Methode nach dem Login, aber das hat Problem einige Male die auth_key wird gespeichert, aber manchmal nicht.

Was kann ich tun, um dieses Problem zu vermeiden? und was ist dein Vorschlag über diesen Weg? Ist es richtig?

Antwort

0

Sie dürfen auth_key nicht in writeCallback verwenden. Es ist Regenerieren jeder Seite aktualisieren.

+0

Verfallszeit wird auch auf jeder Seite generiert generiert, wie man das zu stoppen? – Avinash

Verwandte Themen