Mehrere Authentifizierungsoptionen mit Tornado

8

Ich habe gerade angefangen, mit Tornado zu spielen und möchte mehrere Authentifizierungsmethoden anbieten. Derzeit funktioniert meine App gut mit googles hybriden OpenID / oAuth mit tornado.auth.GoogleMixin und die nicht authentifizierten Nutzer werden automatisch an die Google-Seite von Google gesendet.

Wenn ein nicht authentifizierter Benutzer eine andere Option verwenden möchte (z. B. local auth oder tornado.auth.TwitterMixin), wie kann ich die Logik implementieren, um einen Authentifizierungsmechanismus im Login-Handler auszuwählen?

Ich habe den Decorator 'tornado.web.authenticated' zu all meinen exponierten Methoden hinzugefügt, und hier ist die my login Handler-Klasse (ziemlich direkt aus den Tornado-Beispielen), die momentan mit Google OpenID / oAuth arbeitet:

%Vor%

Schätzen Sie Vorschläge für eine Lösung. Danke

    
joet3ch 07.10.2010, 19:16
quelle

2 Antworten

11

Ich denke, der einfachste Weg wäre, den AuthLoginHandler auf etwas spezifischeres wie GoogleAuthHandler zu ändern und eine passende Route dafür zu erstellen:

%Vor%

usw.

Erstellen Sie dann einfach Links zu jedem Authentifizierungsanbieter auf der Seite ala:

%Vor%

Wenn Sie es schicker machen wollten, könnten Sie die Anbieter als Auswahlbox angeben, oder wenn Sie WIRKLICH schick werden wollten, könnten Sie ihre "openid" -URL analysieren (z. B. wenn username.google.com, self. redirect ("/ login / google"), aber das setzt voraus, dass die Benutzer ihre OpenID-Anbieter-URLs kennen, was normalerweise nicht der Fall ist. Ich würde raten, wenn Sie ihnen ein Google / Facebook / Twitter-Icon oder etwas zum Anklicken geben würden Verwechsle die geringste Anzahl von Personen.

    
bmelton 11.10.2010, 00:49
quelle
0

Ich bin selbst auf dieses Problem gestoßen, aber in einer etwas anderen Situation.

Eine Lösung ist eigentlich, so etwas zu tun.

%Vor%     
Gilbert 01.04.2011 02:28
quelle

Tags und Links