2016-12-02 3 views
2

Ich habe eine Website auf Django gebaut, um eine vorherige benutzerdefinierte Website mit reinem PHP zu ersetzen.Wie logge ich mich als ein anderer Benutzer mit Django ein?

Die Website wurde so erstellt, dass ein Geschäftsinhaber sich für ein Hauptkonto anmelden und Benutzerkonten für alle seine Mitarbeiter erstellen kann. Das Hauptkonto kann dann eine Liste aller seiner Benutzer anzeigen und auf eine bestimmte Schaltfläche für jeden seiner Benutzer klicken und sich als dieser Benutzer anmelden - es ist nicht erforderlich, einen Benutzernamen oder ein Kennwort einzugeben.

Wir setzen ein paar Cookies, die der aktuelle Benutzer ist nun der Mitarbeiter sowie eine weitere Cookie erklären, dass das System dieses Konto noch ein Meister erzählt, so gibt es eine neue Schaltfläche oben, die den Benutzer klicken Sie können zurück zu gehen zu ihrer vorherigen Hauptkontositzung.

Ich habe Schwierigkeiten, dies in Django zu erreichen. Alles ist so modular, ich bin mir nicht sicher, wie ich eine Sitzung für ein neues Konto starten soll, ohne dass der Benutzer Benutzername und Passwort erneut eingeben muss.

Antwort

0

Sie können immer die login Methode verwenden, um dies zu tun. Mein Ratschlag scheint jedoch nicht der beste Ansatz zu sein. Wenn Sie die Sitzung des Hauptbenutzers ändern, haben Sie keine Möglichkeit zu wissen, ob der Benutzer ein Hauptbenutzer ist. Wie könnte er also die Berechtigung haben, zum Hauptkonto zurückzukehren?

Sie sollten stattdessen auf Cookies oder den lokalen Speicher Ihres Browsers bleiben, um den aktuellen Benutzer zu speichern, ohne seine Sitzung zu ändern. Dann, just define permissions für die Aktionen Ihrer Website, damit Ihr Master-Benutzer die Berechtigung hat, auf alle Aktionen zuzugreifen, die offensichtlich die des Benutzerkontos umfassen, auf das er sich geändert hat.

+0

Wenn Sie den Benutzer im lokalen Speicher des Browsers speichern, müssen Sie den Cookie signieren, um Manipulationen zu verhindern, oder prüfen, ob der Benutzer bei jeder Anfrage erlaubt ist. Sie können sowohl den aktuellen Benutzer als auch den Hauptbenutzer in der Sitzung speichern, die serverseitigen Speicher verwendet, oder die Werte im Falle des Cookie-Backends automatisch signieren. – knbk

Verwandte Themen