2011-03-28 14 views
10

Estoy usando LightOpenID para autenticar OpenID contra Google Apps. Realizo la solicitud inicial authURL() y todo está bien. Llamo a validate() y falla. A través de copiosos ecos, lo he rastreado hasta las últimas líneas de validate().LightOpenID validate() falla en Google Apps

De validate(), la url pasado a Discover ($ url) es https://www.google.com/accounts/o8/user-xrds?uri=http://my-domain.com/openid?id=117665028262121597341

Discover() busca en primer lugar un Xrds en la localización, que no está presente. discover() next comprueba si el tipo de contenido es xrds + xml, que es verdadero. discover() comprueba el Servicio (. *)/Servicio, que es verdadero. Aquí está el fragmento de servicio,/servicio

<Service priority="0"> 
<Type>http://specs.openid.net/auth/2.0/signon</Type> 

<Type>http://openid.net/srv/ax/1.0</Type> 
<Type>http://specs.openid.net/extensions/ui/1.0/mode/popup</Type> 
<Type>http://specs.openid.net/extensions/ui/1.0/icon</Type> 
<Type>http://specs.openid.net/extensions/pape/1.0</Type> 
<URI>https://www.google.com/a/<my domain>.com/o8/ud?be=o8</URI> 
</Service> 

Discover() da cuenta de que estamos usando OpenID 2 y extrae el campo URI en la variable $ servidor. discover() continúa extrayendo CanonicalID, encontrando que Google admite AX y no SREG. Finalmente, discover() devuelve $ servidor como https://www.google.com/a/my-domain.com/o8/ud?be=o8

validate() continúa limpiando cada campo en datos [], dependiendo de magic_quotes o no. Establece openid.mode en 'check_authentication', solicita el $ servidor devuelto por discover ($ url) y preg's para '/ is_valid: true'. Es este último preg_match que falla. La URL $ server no devuelve una validación, sino que dice: "La página que solicitó no es válida".

La respuesta que estoy buscando es la url correcta para la validación de Google Apps. Un segundo cercano sería cómo debería ser la url y buscaré en la información devuelta por Google Apps y veré si tengo algo así.

AGREGADO: No estoy seguro si esto importa pero tengo un archivo /.well-known/host-meta en su lugar. Aquí está el contenido: Link: <https://www.google.com/accounts/o8/site-xrds?hd=my-domain.com>; rel="describedby http://reltype.google.com/openid/xrd-op"; type="application/xrds+xml"

Quiero saber si quieres más códigos o datos.

Gracias, Eric B.

+0

estoy experimentando la misma dificultad con Google Apps y LightOpenId ... Sólo ha comenzado a suceder recientemente embargo. – Greg

+0

Y ahora vuelvo, casi un año después, con el mismo problema. Casi recuerdo lo que hizo que el problema desapareciera el año pasado. Intenté buscar en Google otra vez y observo dónde me llevó ... – Greg

+0

Algunas posibles respuestas: http://stackoverflow.com/questions/3995011/log-in-the-user- con-lightopenid http://stackoverflow.com/questions/14752715/implementing-openid-with-php/14754571#14754571 – ethrbunny

Respuesta

0

asegurarse de extensión PHP curvatura se ha instalado en su servidor. Recientemente hemos detectado exactamente los mismos síntomas en la producción y se relacionó con un problema de aprovisionamiento de servidores.

Si está ejecutando una aplicación en Debian, basta con utilizar:

apt-get install php5-curl 
Cuestiones relacionadas