Pergunta

Estou tentando usar a biblioteca PHP-Openid para implementar o OpenID no meu site. O exemplo básico do consumidor dentro de seu pacote não funciona para o Google e o Yahoo. Encontrei a solução do Google aqui:Exemplo de uso do AX no PHP OpenIDMas ainda não funciona para o Yahoo! . Como posso fazer isso funciona?

Foi útil?

Solução

uau, está resolvido agora !!!!!

Eu rastreei as funções e encontrei o problema.

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

Para obter o e -mail do usuário do provedor. Funciona bem no Google porque o Google ignora '2' (contagem do endereço de e -mail solicitado), mas no Yahoo! Ele gera [count.Email] => 2 para ele (na função getSignedns) e na resposta do Yahoo, não há entrada para contagem.ail. Isso faz com que retorne nulo em getsignedns para o yahoo. eu mudei

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

para

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

E funciona bem agora e retorne o que eu solicitou de ambos os provedores !!!

lol...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top