php-openID は Yahoo では機能しません
-
26-09-2019 - |
質問
私のサイトに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');"
そして、今では正常に動作し、両方のプロバイダーから要求したものを返します。
笑...
所属していません StackOverflow