Flask User Management: Wie kann Stateless Server bessere Authentifizierungsmethoden nutzen?

9
  • Ich habe an mehreren Stellen gelesen, und es wird empfohlen, dass die Webserver Stateles mit Architektur teilen sein sollten. Dies hilft ihnen, besser zu skalieren.

  • Das bedeutet, dass jede Anfrage alle Informationen enthält, die zur Bearbeitung der Anfrage benötigt werden.

  • Dies wird schwierig, wenn Sie REST Endpunkte haben, die eine Authentifizierung erfordern.

  • Ich habe nach Wegen gesucht, die Flask-Erweiterungen machen und Flask Login Erweiterung ist definiert als

  

Flask-Login bietet Benutzer-Session-Management für Flask. Es handhabt das   häufige Aufgaben des Anmeldens, Abmeldens und Erinnerns an Ihre Benutzer   Sitzungen über längere Zeiträume.

  • Das scheint gegen die Philosophie zu sein, einen Stateless Server zu bauen, oder?
  • Was sind bessere Möglichkeiten zum Aufbau eines Stateless Servers mit Authentifizierung über HTTP-Header mit Python oder verwandten Python-Bibliotheken?

P.S: Entschuldigung dafür, dass ich hier keine Programmierfrage gepostet habe, das ist ein Designproblem und ich weiß nicht, wie ich es lösen soll und SO scheint richtige Leute zu haben, um solche Fragen zu beantworten. Danke.

    
daydreamer 07.03.2013, 04:58
quelle

2 Antworten

3

Flask-Login verwendet flashs eingebaute Sitzungsverwaltung , die standardmäßig sichere / signierte Cookies verwendet, und so ist das rein clientseitig.

Es kann serverseitige Sitzungen bei Bedarf unterstützen, aber hier ist ein Beispiel für einen erneut unterstützten Sitzungsspeicher.

    
DazWorrall 07.03.2013 10:22
quelle
1

Ich habe das gleiche Problem wie du gesagt hast. Während ich eine einfache Lösung dafür gebaut habe, aber nach einem besseren suche. Was ich gerade gemacht habe ist, den Anrufer zu fragen (Wer die HTTP-Anfrage sendet) stelle eine 'X-User-Info' im http-Header bereit, der Wert ist ein Token. Wenn ich die Anfrage erhalten habe, verwende ich dieses Token, um die Benutzeridentität zu erhalten (z. B. von redisis) und alle folgenden Autorisierungen & amp; Berechtigungskontrolle basiert auf dieser Identität. Die Authentifizierung erzeugt nur ein zufälliges Token, speichert es mit den Benutzerinformationen zum Redistieren und gibt das Token selbst an den Aufrufer zurück.

    
Simon. Li 02.08.2014 06:29
quelle