9

アプリの認証部分を開発していますが、OpenIDを使用した認証のコーディングで問題が発生しました。

Tipfyのサンプルコードを見てきましたが、OpenIDプロバイダーがgoogleにハードコーディングされていることを前提に書かれているようです。

ユーザーが希望するOpenIDを提供できるようにしたいと思います(それがポイントではありませんか?)。

ユーザーが提供したOpenIDを使用してログインしているユーザーを示すサンプルコードはありますか?

4

2 に答える 2

6

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 は、クラスを基本クラスとして拡張し、直接使用しないことを指定するために、より明確にする必要があります。GoogleMixinFriendFeedMixinFaceBookMixin

Tipfy を使用してアプリケーションで OpenID URL をサポートするには何が必要ですか?

Google App Engine が OpenID サポートを提供するために採用したのと同じコンシューマー ユーザーランド ライブラリを使用する必要があります。こちらがソースコードで、こちらが実際の例です。

具体的には、ファイルを詳しく見てopenid.consumer.consumer.py、XRDS/OpenID の検出がどのように行われるかを確認してください。いくつかの作業を行うと、この部分を Tipfy に統合できるはずですOpenIdMixin

* OpenID コードはtornado.authから移植されています

于 2011-01-31T14:10:04.860 に答える
2

そのコードは単なる例です。ユーザーがフォームを介して OpenID プロバイダーのエンドポイント URL を指定し、POST から値を取得できるようにするだけです。ただの文字列です。

于 2011-01-31T14:28:07.980 に答える