9 Stimmen

Authentifizierung über eine beliebige OpenID mit Tipfy

Ich entwickle gerade den Authentifizierungsteil meiner Anwendung und bin auf Probleme bei der Codierung der Authentifizierung mit OpenID gestoßen.

Ich habe mir den Beispielcode von Tipfy angesehen, aber er scheint unter der Annahme geschrieben worden zu sein, dass der OpenID-Anbieter fest mit Google verbunden ist.

Ich möchte, dass der Benutzer jede beliebige OpenID angeben kann (ist das nicht der Sinn der Sache?).

Hat jemand einen Beispielcode, der zeigt, wie sich ein Benutzer mit einer vom Benutzer bereitgestellten OpenID anmeldet?

6voto

systempuntoout Punkte 68725

Erlaubt Tipfy eine OpenID-Authentifizierung?

Wenn Sie eine OpenID Url mit Tipfy authentifizieren wollen, Sie können es nicht tun aus der Schachtel.
Ein Hauptgrund ist, dass Tipfy keinen Erkennungsmechanismus hat, um den OpenID-Endpunkt von einer gegebenen OpenID-Benutzer-URL abzurufen.

Was fehlt Tipfy noch?

Tipfy erlaubt es nicht, den Punkt b. des folgenden Arbeitsablaufs:
a. Benutzer reicht ein foo.blogspot.com
b. der Rahmen ruft ab foo.blogspot.com Abrufen des OpenId-Endpunkts von der HTML-Seite:

<link rel="openid.server" href="http://www.blogger.com/openid-server.g" />

c. leitet das Framework den Benutzer auf die entfernte Anmeldeseite um.

Was bietet Tipfy wirklich?

Der Tipfy openid Erweiterung * bietet einfach die OpenIdMixin die nur eine Basisklasse ist, die für den Aufbau von OpenID-Unterstützung für eine bestimmte Plattform (z. B. Google) nützlich ist.
In der Tat, GoogleMixin Klasse erweitert OpenIdMixin :

class GoogleMixin(OpenIdMixin, OAuthMixin):
    """A :class:`tipfy.RequestHandler` mixin that implements Google OpenId /
    OAuth authentication.

und der Google OpenID-Endpunkt ist fest verdrahtet:

_OPENID_ENDPOINT = 'https://www.google.com/accounts/o8/ud'

Der Name OpenIdMixin ist ein wenig irreführend in der Nähe anderer Klassennamen wie GoogleMixin , FriendFeedMixin , FaceBookMixin etc. etc; Der Docstring sollte deutlicher machen, dass die Klasse nur als Basisklasse erweitert und nicht direkt verwendet werden sollte.

Was brauchen Sie, um eine OpenID url in Ihrer Anwendung mit Tipfy zu unterstützen?

Sie sollten die gleichen Consumer Userland Bibliothek die Google App Engine übernommen hat, um OpenID-Unterstützung zu bieten; aquí den Quellcode und aquí ein lebendes Beispiel.

Schauen Sie sich im Einzelnen Folgendes genauer an openid.consumer.consumer.py Datei und die Art und Weise, wie die XRDS/OpenID-Erkennung abläuft; ich denke, mit etwas Arbeit sollten Sie in der Lage sein, diesen Teil in Tipfy zu integrieren OpenIdMixin .

* Der OpenID-Code wurde von tornado.auth

2voto

Daniel Roseman Punkte 565786

Dieser Code ist nur ein Beispiel. Sie müssen dem Benutzer nur erlauben, die Endpunkt-URL seines OpenID-Anbieters über ein Formular anzugeben und den Wert aus dem POST zu erhalten. Es ist nur eine Zeichenkette.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X