Ich denke func0der Antwort ist gut, aber es verbessert werden kann:
protected function renewLogin() {
if(!empty($this->Auth->user())) {
$this->loadModel('User');
$this->User->contain(false);
$user = $this->User->read(null, $this->Auth->user('id'))['User'];
unset($user['password']);
$this->Auth->login($user);
}
}
Sie diese zu Ihrem AppController.php und es von jedem Controller verwenden hinzufügen können nach der Änderung der angemeldete Benutzer.
Ich glaube, es ist viel sauberer und obwohl es den Zugriff auf die Datenbank impliziert, denke ich, es wird nicht oft genug ausgeführt werden, um ein Problem zu sein.
Sie sollten IMMER versuchen, Dinge auf die Art und Weise "Kuchen" zu tun. Vermeiden Sie Verknüpfungen wie das Bearbeiten einer Sitzungsvariablen. Es wird dir die Dinge auf lange Sicht erleichtern.
Bitte kommentieren und fügen Sie Ihre Meinungen :)
Du solltest nicht versuchen, die Auth-Komponente zu umgehen. Wenn die Sitzungsschlüssel dort geändert würden, wäre Ihre Lösung sofort. – func0der
Down-vote, weil der richtige Weg dies mit etwas wie: '$ this-> Auth-> login ($ newUserData);' Siehe Funcoder Antwort. –
Seine einige Sache wie Again muss den Benutzer authentifizieren, bereits der Benutzer ist eingeloggt So ist dies die empfohlene Möglichkeit, lassen Sie es mich bitte @deceze [~ deceze] – AnNaMaLaI