アプリの認証部分を開発していますが、OpenIDを使用した認証のコーディングで問題が発生しました。
Tipfyのサンプルコードを見てきましたが、OpenIDプロバイダーがgoogleにハードコーディングされていることを前提に書かれているようです。
ユーザーが希望するOpenIDを提供できるようにしたいと思います(それがポイントではありませんか?)。
ユーザーが提供したOpenIDを使用してログインしているユーザーを示すサンプルコードはありますか?
アプリの認証部分を開発していますが、OpenIDを使用した認証のコーディングで問題が発生しました。
Tipfyのサンプルコードを見てきましたが、OpenIDプロバイダーがgoogleにハードコーディングされていることを前提に書かれているようです。
ユーザーが希望するOpenIDを提供できるようにしたいと思います(それがポイントではありませんか?)。
ユーザーが提供したOpenIDを使用してログインしているユーザーを示すサンプルコードはありますか?
Tipfy は OpenID 認証を許可しますか?
Tipfy で OpenID Url を認証したい場合、そのままでは実行できません。
主な理由の 1 つは、Tipfy には、特定の OpenID ユーザー URL から OpenID エンドポイントを取得するための検出メカニズムがないためです。
欠けているTipfyは何ですか?
Tipfy は点bを許可しません。次のワークフローの
: ユーザーがサブミットするfoo.blogspot.com
b. フレームワークはfoo.blogspot.com
、html ページから OpenId エンドポイントを取得します。
<link rel="openid.server" href="http://www.blogger.com/openid-server.g" />
c. フレームワークは、ユーザーをリモート ログイン ページにリダイレクトします。
Tipfy が実際に提供するものは何ですか?
Tipfy のopenid拡張機能*OpenIdMixin
は、特定のプラットフォーム (Google など) への OpenID サポートを構築するのに役立つ単なる基本クラスである を提供するだけです。
確かに、GoogleMixin
クラスは拡張しますOpenIdMixin
:
class GoogleMixin(OpenIdMixin, OAuthMixin):
"""A :class:`tipfy.RequestHandler` mixin that implements Google OpenId /
OAuth authentication.
また、Google OpenID エンドポイントがハードコードされています。
_OPENID_ENDPOINT = 'https://www.google.com/accounts/o8/ud'
名前は、、などOpenIdMixin
の他のクラス名の近くで少し誤解を招きます。docstring は、クラスを基本クラスとして拡張し、直接使用しないことを指定するために、より明確にする必要があります。GoogleMixin
FriendFeedMixin
FaceBookMixin
Tipfy を使用してアプリケーションで OpenID URL をサポートするには何が必要ですか?
Google App Engine が OpenID サポートを提供するために採用したのと同じコンシューマー ユーザーランド ライブラリを使用する必要があります。こちらがソースコードで、こちらが実際の例です。
具体的には、ファイルを詳しく見てopenid.consumer.consumer.py
、XRDS/OpenID の検出がどのように行われるかを確認してください。いくつかの作業を行うと、この部分を Tipfy に統合できるはずですOpenIdMixin
。
* OpenID コードはtornado.authから移植されています
そのコードは単なる例です。ユーザーがフォームを介して OpenID プロバイダーのエンドポイント URL を指定し、POST から値を取得できるようにするだけです。ただの文字列です。