php-openID doesn't work with Yahoo

纵然是瞬间 提交于 2019-11-27 06:04:08

问题


i am trying to use php-openid library for implementing openID in my site. the basic consumer example inside its package doesn't work for Google and Yahoo. i found the Google solution here: Example usage of AX in PHP OpenID but it doesn't still work for Yahoo! . how can i made it works?


回答1:


wow it is solved now !!!!!

i traced the functions and found the problem.and that is.... in "try_auth.php" file i used

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

for getting the user email from provider. it works fine in Google because Google ignore '2' (count of requested email address) but in Yahoo! it generate [count.email] => 2 for it (in getSignedNS function) and in Yahoo response there is no entry for count.email. it causes to return null in getSignedNS for Yahoo. i changed

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

to

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

and it works fine now and return whatever i requested from both provider !!!

lol...



来源:https://stackoverflow.com/questions/2616123/php-openid-doesnt-work-with-yahoo

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!