3

LightOpenIDライブラリを使用して、自分のWebサイトにOpenIDを正常に実装することができました。ただし、数日前、Googleをプロバイダーとして使用すると機能しなくなりました(Yahoo!を使用すると正常に動作します)。OpenIDを実装した日から、どのプロバイダーを使用しても問題なく実行されました。Googleアカウントを使用してログインするユーザーも数人いました。しかし、奇妙なことに、数日前にGoogleは動作を停止し(他のプロバイダーは引き続き正常に動作しています)、$ openid-> validate()でfalseを返しました。

LightOpenIDによって提供されたexample-google.phpファイルを変更なしで使用してテストしましたが、運がありませんでした。また、さまざまなGoogleアカウントを使用してテストしましたが、運が悪かったのです。私は別のウェブサイトでテストしたことさえありましたが、それでも運がありませんでした。共有ホストを使用していて、バージョン7.19.7を実行しているcurlがインストールされていることに注意してください

Googleは、現在これを引き起こしているシステムに最近変更を加えましたか?この問題の他の理由はありますか?

4

2 に答える 2

0

このスレッドにもう少し情報を追加します。

('file_get_contents'の)ファイルストリームにも問題がありました。上記のように強制的にカールさせました。(Googleでのみ発行します。Yahooは正常に機能していました)

共有ホスティングでは、「CURLOPT_FOLLOWLOCATION」オプションもコメントアウトする必要がありました。

于 2013-01-29T20:00:20.467 に答える
0

他の人はcURLを有効にするように言っています(これはあなたの問題かもしれません)が、私の場合はcURLが有効になっていました。

さらにスヌーピングを行ったところ、関数リクエストで次のチェックが失敗したため、リクエストが request_streams() を通過していることがわかりました(便宜上フォーマットされています)。

if (
  function_exists( 'curl_init' ) &&
  (
    !in_array( 'https', stream_get_wrappers() ) ||
    !ini_get( 'safe_mode' ) &&
    !ini_get('open_basedir' )
  )
) {

次のように変更します。

if (
  function_exists( 'curl_init' ) &&
  (
    !in_array( 'https', stream_get_wrappers() ) ||
    (
      !ini_get( 'safe_mode' ) &&
      !ini_get( 'open_basedir' )
    )
  )
) {

お役に立てれば。

編集:Googleが何らかの変更を加えたかどうかはわかりませんが、同じライブラリを使用している多くの人が同時に同じ問題を抱えているという事実は、何かが起こったことを意味し、ほとんどの人はおそらくそうしなかったと言えます何も変わらない。Google はおそらく、より制限的で安全なものにするために何らかのスイッチを押したのでしょう。

于 2012-04-26T05:57:52.730 に答える