Janrain biblioteca php e google endpoint para OpenId
-
22-07-2019 - |
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)
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 ??em> endpoint. você tem que fornecer-lhe um válido (google) OpenID Identificador, comoexample.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<?=
emdiscover.php
(substituindo-os por<?php
e<?php echo
). Alternativamente, você podeini_set('short_open_tag', '1')
. ele é desligado por padrão nophp.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