質問

OpenIdおよびyadisの検出にjanRain Phpライブラリを使用しており、何をしても、user.openid.orgまたは自分のプロバイダーなどで作業しますが、Googleエンドポイントを使用しようとすると、取得できません発見情報。

janrainライブラリーのディスカバリー例を実行しても、次の結果が要求されます

Identifier  http://www.google.com/accounts/o8/id
No OpenID services discovered.

そして、URLの前にhttps://を追加した場合も同様です。

私の質問はおそらくそれをどのように機能させるかではありませんが、実際に可能であれば、他の選択肢は何ですか(私のサイトで実行され、プロジェクトで生意気な認証は必要ありません)。

なぜopenIdが#@!#@複雑で文書化されていないのですか(注:同じ結果を得るためにzend_openidを数時間与えました)

役に立ちましたか?

解決

ここで機能しています。いくつかのヒント:

  • 私が理解しているように、http(s)://www.google.com/accounts/o8/idはopenidエンドポイントではなく、googles discovery エンドポイントです。 example.blogspot.comなどの有効な(google)OpenID識別子を提供する必要があります。この識別子は、要求された識別子、サーバーURL、サービスタイプなどを返します。
  • iは、<?および<?=discover.phpで修正した後にのみ機能するディスカバリー例を取得しました(これらを<?phpおよび<?php echoに置き換えます)。または、ini_set('short_open_tag', '1')を使用できます。 php.ini-recommendedではデフォルトでオフになっています。
  • PHPインストールはSSLをサポートしていますか? README 、特にこの部分を参照してください:
Not all PHP installations support SSL.  You can find out if yours
supports SSL by reading the "HTTP Fetching" section of the output of
"examples/detect.php."  If your installation does not support SSL,
then https:// identity URLs and server URLs will not be supported by
the library.  An attempt to use such an identity URL will be
equivalent to using an invalid OpenID.  To enable SSL support,
recompile PHP with OpenSSL support or install the appropriate OpenSSL
module for your platform.  If you are using CURL, CURL will need to be
built with OpenSSL support.

他のヒント

これは合法的な牛肉です。 Googleは、彼らがOpenIDをサポートしていると言っているが、彼らは他の誰のようにも機能しない。 MyOpenID.com、blogspot、aol、yahoo、wordpress、myspace、livejournal、および他の多くのすべてが標準を正しくサポートしており、期待どおりに機能します。独自のOpenIDプロバイダーと同様に、CommunityIDサーバープロジェクトを使用してビルドできます。

/ため息

指示されたIDリクエストを行う必要があります。通常は、ユーザーが入力したかのようにURLを渡すだけです...(過去に使用したライブラリがOpenID2.0をサポートしている限り)これは常に機能します。

この質問をご覧になることをお勧めします: JanrainのPHP-OpenIDとGoogle / Yahoo

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top