Pergunta

Im usando a biblioteca Janrain Php para OpenId e Yadis descoberta e não importa o que eu faço, eu vou trabalhar em coisas como user.openid.org ou meu próprio provedor, mas se eu tentar usar o endpoint google, eu não posso obter qualquer informações de descoberta.

Mesmo se eu executar o exemplo de descoberta para a biblioteca Janrain, eu recebo o próximo resultado Reivindicado

Identifier  http://www.google.com/accounts/o8/id
No OpenID services discovered.

e acontece o mesmo se eu adicionar o https:. // antes do url

A minha pergunta não é, provavelmente, a forma de fazê-lo funcionar, mas se a sua realmente possível, o que as outras opções que eu tenho (que são executados no meu site, não auth atrevida queria no projeto).

Por que é tão openId # @! # @ Complexo e não documentada? (Note, eu dei zend_openid um par de horas para ter o mesmo resultado)

Foi útil?

Solução

que está trabalhando aqui. Algumas dicas:

  • como eu o entendo, http(s)://www.google.com/accounts/o8/id não é um ponto final OpenID, mas googles descoberta endpoint. você tem que fornecer-lhe um válido (google) OpenID Identificador, como example.blogspot.com, para o qual ele retorna Reivindicado Identificador, Servidor URL, tipos de serviço, etc.
  • eu tenho o exemplo descoberta trabalhando somente após a fixação do <? e <?= em discover.php (substituindo-os por <?php e <?php echo). Alternativamente, você pode ini_set('short_open_tag', '1'). ele é desligado por padrão no php.ini-recommended.
  • faz o PHP suporte de instalação SSL? consulte README , especificamente esta parte:
Not all PHP installations support SSL.  You can find out if yours
supports SSL by reading the "HTTP Fetching" section of the output of
"examples/detect.php."  If your installation does not support SSL,
then https:// identity URLs and server URLs will not be supported by
the library.  An attempt to use such an identity URL will be
equivalent to using an invalid OpenID.  To enable SSL support,
recompile PHP with OpenSSL support or install the appropriate OpenSSL
module for your platform.  If you are using CURL, CURL will need to be
built with OpenSSL support.

Outras dicas

Esta é uma carne legítimo. Google diz que eles suportam OpenID, mas deles não funciona como elses ninguém. MyOpenID.com, blogspot, aol, yahoo, wordpress, myspace, LiveJournal e muitos outros, todos suportam o padrão corretamente e funciona como esperado. Como faz seu próprio provedor de OpenID você pode construir usando o projeto de servidor CommunityID.

/ sigh

Você precisa fazer um pedido identidade dirigido. Normalmente, que envolve apenas passar o URL como se o usuário tivesse entrado ... que sempre trabalhou para mim no passado (desde que a biblioteca você usa suportes OpenID2.0).

Eu sugiro que você olhar para esta questão: de Janrain PHP-OpenID e Google / Yahoo

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