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