質問

私のサイトにopenIDを実装するためにphp-openidライブラリを使用しようとしています。パッケージ内の基本的な消費者向けサンプルは、Google や Yahoo では機能しません。ここでGoogleのソリューションを見つけました。PHP OpenID での AX の使用例しかし、Yahoo! ではまだ機能しません。。どうすればうまくいくでしょうか?

役に立ちましたか?

解決

うわー、もう解決しました!!!!

関数をトレースして問題を見つけました。そしてそれは....私が使用した「try_auth.php」ファイル内

"$attribute[] = Auth_OpenID_AX_AttrInfo::make('http://axschema.org/contact/email',2,1, 'email');" 

プロバイダーからユーザーの電子メールを取得するため。Google では「2」(要求された電子メール アドレスの数)を無視するため、Google では正常に動作しますが、Yahoo! では正常に動作します。(getSignedNS 関数内で) [count.email] => 2 が生成されますが、Yahoo の応答には count.email のエントリがありません。これにより、Yahoo の getSignedNS で null が返されます。私が変更され

"$attribute[] = Auth_OpenID_AX_AttrInfo::make('http://axschema.org/contact/email',2,1, 'email');"

"$attribute[] = Auth_OpenID_AX_AttrInfo::make('http://axschema.org/contact/email',1,1, 'email');" 

そして、今では正常に動作し、両方のプロバイダーから要求したものを返します。

笑...

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