Quiero implementar un sistema de inicio de sesión de OpenID con la última versión de LightOpenID. Estoy probando el ejemplo proporcionado con el código fuente línea por línea (acabo de reemplazar localhost
con $_SERVER['HTTP_HOST']
en el constructor).El código de inicio de sesión de OpenID falla en el servidor activo
El problema es que todo funciona bien en mi caja de desarrollo dentro de una red privada (PHP/5.3.6 en Windows Vista) pero la validación siempre falla en mi servidor de vida en la red pública HSP (PHP/5.3.3 en CentOS)
He añadido var_dump()
's alrededor y puedo decir que ambas copias del código producen exactamente los mismos parámetros de solicitud y reciben exactamente los mismos parámetros de respuesta (a través de GET). Solo openid.assoc_handle
, openid.sig
, openid.response_nonce
y openid.return_to
tienen valores diferentes, lo que supongo que es el comportamiento esperado.
Sin embargo, mi caja dev recibe esto desde el proveedor de OpenID (no importa que uno que yo uso):
is_valid:true
ns:http://specs.openid.net/auth/2.0
... y mi zorro vivo recibe esta:
is_valid:false
ns:http://specs.openid.net/auth/2.0
Aren No se trata de ningún carácter no ASCII, por lo que no puede tratarse de un problema de codificación. Debe haber algo mal en mi servicio de alojamiento, pero no puedo entender qué.
Necesito sugerencias sobre posibles causas y consejos para la solución de problemas.
Gracias por la corrección. Aunque está duplicado, me pregunto por qué la segunda llamada a file_get_contents ($ url, false, $ context) que es igual a $ data no funciona. – neobie
Supongo que solo puede validar una llamada exitosamente por razones de seguridad. –
Se llama 'nonce' por alguna razón. Es un token de una sola vez. – Maerlyn