0

私は最新の Janrain openid ライブラリの例を使用しており、検出プロセスは Yahoo、myopenid.com などでうまく機能しているようです...

しかし、私は Google エンドポイント ( httpsセミコロン//www.google.com/accounts/o8/id ) にこだわっています。Consumer.php は、Google のページにリダイレクトされる前に、406 Apache エラーを返すだけです。

私のインストールはすべてここにあります: http://www.coplango.com/vendor/openid/examples/

  • consumer をクリックして、consumer の例を試してみますが、discovery.php は同じように失敗し、検出中に発生することが証明されています...
  • また、detect.php をチェックしてインストールを確認することもできます。HTTP 取得テストは、503 を返すアドレスに到達しようとするため、503 で失敗します。残りは問題ありません。

ヘッダーを指定するphp-yadisにかかっているとAccept: application/xrds+xml思いましたが、コードを確認したところ、他のタイプも受け入れられtext/htmlますapplication/xhtml+xml.

誰かがこれに出くわしましたか?

どんな手掛かり?

どうもありがとうございました!

4

3 に答える 3

2

Ok、

さらに調査したところ、プロバイダーに問題があるようです。デス ワード「/id」を含む文字列が GET パラメータとして渡されると、406 エラーが返されます。それがopenidに依存していないことを理解するのに何日もかかりました!!

情報については、他の誰かがこれに遭遇した場合、PlanetHoster を使用しています。私は彼らにチケットリクエストを送り、彼らの返事を待っています。

于 2009-10-01T09:57:07.187 に答える
1

私のマシンで消費者の例を実行すると、次のエラーが発生します。

Got no response code when fetching https://www.google.com/accounts/o8/id
CURL error (60): SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

これは、curl が Google の https サーバー証明書の検証に失敗したことを意味します。CURLOPT_CAINFOcurl に CA 証明書を提供して/経由で Google の証明書を検証するかCURLOPT_CAPATH、または - 簡単に - 経由で証明書の検証を停止することで、これを回避できますCURLOPT_SSL_VERIFYPEER。次の変更により、Auth/Yadis/ParanoidHTTPFetcher.php後者が達成されます。

--- ParanoidHTTPFetcher.php.orig        2009-04-22 02:31:20.000000000 +0800
+++ ParanoidHTTPFetcher.php     2009-09-30 22:35:24.093750000 +0800
@@ -127,6 +127,9 @@
                         Auth_OpenID_USER_AGENT.' '.$curl_user_agent);
             curl_setopt($c, CURLOPT_TIMEOUT, $off);
             curl_setopt($c, CURLOPT_URL, $url);
+
+            // don't verify server cert
+            curl_setopt($c, CURLOPT_SSL_VERIFYPEER, FALSE);

             curl_exec($c);

もちろん、curl インストールも ssl をサポートしている必要がありますphpinfo()。. また、CURLOPT_SSL_VERIFYPEERが無効になっている場合は、またはCURLOPT_SSL_VERIFYHOSTにする必要がある場合もあります。TRUEFALSE

http://www.openrest.eu/docs/openid-not-completely-enabled-for-google.phpも参照してください (関連する Why does not Google OpenID provider work with PHP-OpenId on my server?経由)。

于 2009-09-30T15:01:15.380 に答える
0

解決:

.htaccess ファイルに

SecFilterEngine Off
于 2012-01-04T17:09:29.840 に答える