Bevor ich das Rad neu erfinde, möchte ich zuerst überprüfen, ob ZF2 entweder sofort oder mit einer 3rd-Party-Bibliothek diesen speziellen Anwendungsfall unterstützt, bei dem Admins log in as
anderer Benutzer oder assume
ihre Identität.ZF2 - Angenommen, die Identität eines anderen Benutzers
Wenn nicht, wie ich mit ZF2 internem Design nicht vertraut bin, wie würde ich in die Implementierung gehen, mit der einzigen Einschränkung, dass das System bereits gebaut ist, so kann ich nicht Komponenten (Controller, Auth-Dienste usw.), um es zu unterstützen.
Mein erster Gedanke wäre, einen Mechanismus zu machen, um die geloggten Benutzerinformationen, die im Sitzungsspeicher gespeichert sind, mit demjenigen auszutauschen, dessen Identität ich annehmen möchte. Schreiben Sie dann unter einem anderen Namespace die ursprüngliche Benutzerinformation (admin) in die Sitzung, damit sie zurückgesetzt werden kann.
Mit diesem Ansatz erwarte ich Komponenten wie Zend\Authentication\AuthenticationService
den Benutzer, dessen Identität ich vermute. Also, in jedem Anruf, den ich an $this->identity()->getId()
mache (Identität ist ein Controller-Plugin für AuthenticationService, das die User
zurückgibt) in anderen Controllern, wird die Geschäftslogik normal funktionieren.
Nach diesen Worten würden die Fragen sein:
- Gibt es eine Lösung bereits für das?
- Ist meine Vorgehensweise richtig, wenn ich davon ausgehe, dass ich durch Überschreiben des Sitzungsspeichers eine andere Benutzerkennung annehmen und erwarten kann, dass ZF2-Komponenten entsprechend funktionieren, oder gibt es Überlegungen hinsichtlich des internen Designs/der Infrastruktur von ZF2, die ich nicht berücksichtigt habe ?
- Vielleicht gibt es einen besseren Weg, dies zu tun?