Wie überprüfe ich ob ein eingeloggter Benutzer noch aktiv ist ?
Damit meine ich: Wie bringe ich Yii dazu das er bei jedem Seiten Aufruf überprüft ob der eingeloggte Benutzer in der Datenbank noch existiert und auch aktiviert ist?
Gibt es dafür ein Callback, oder eine Einstellung für die Config ?
Achso und falls du meinst, das er bei jedem Seitenaufruf neu in der DB prüfen soll, dann schalte einfach die CookieDuration herunter auf z.B. 60. Dann prüft er alle 60 sekunden neu.
Ich hab das ganze jetzt erstmal quick & dirty gelöst. ich habe einfach meine Index.php angepasst.
$app = Yii::createWebApplication($config);
$app->setLanguage("de");
checkUserSession();
$app->run();
function checkUserSession () {
if(!Yii::app()->user->isGuest){
/* user in db ? perform other checks... */
$record=User::model()->findByAttributes(array('username'=>Yii::app()->user->name));
if($record === null) {
Yii::app()->user->logout();
}
}
}
Ansich vielleicht nicht die schönste Lösung, aber da ich vorerst kein Interesse habe einen UserManager zuinstallieren und Cookielebensdauer von 60 Sekunden auch nicht das wahre ist.