Como arreglar los errores de PHP-OpenID en PHP 5.3

El hecho de que la librería para OpenID de JanRain es la más popular no se debe a sus virtudes precisamente… Se debe más bien a que el resto de librerías que hay para PHP son aún peores. El mayor problema de esta librería es que intenta mantener la compatibilidad con PHP 4 a base de utilizar un montón de código obsoleto (deprecated) que, finalmente, ha dejado de funcionar en PHP 5.3.

Aún así, todavía no ha habido nadie que se digne a reescribir esa librería para PHP 5 así que los que queremos actualizar a PHP 5.3 (o necesitamos hacerlo, más bien) estamos jodidos. Por suerte, hemos sido muchos los que nos hemos encontrado con este mismo problema y al final hemos conseguido una solución que sirve de momento. Es una chapuza bastante importante, pero de momento funciona.

Si cuando leáis esto no lo han arreglado todavía en la versión oficial, podéis descargar la librería con todos los cambios que he tenido que hacer: PHP OpenID arreglado para PHP 5.3.

Lo he explicado todo en una receta de The Source Cookbook (está en inglés, pero se entiende bien):

OpenID: La llave maestra de internet (qué, cómo, quién y enlaces)

OpenID logoNo se lo voy a ocultar a nadie: Soy una persona despistada y eso, aunque no es nada grave, es problemático para algunas cosas. Una de esas cosas es recordar los nombres de usuario y las contraseñas que has utilizado en cada página web que te registras (soy de los que usan el botón de recuperar contraseña habitualmente), pero confio en que OpenID termine con mi sufrimiento.

¿Qué es OpenID?

OpenID se autodefine como como un sistema descentralizado y abierto que permite la identificación única de los usuarios.

El objetivo de este sistema es eliminar el uso de múltiples nombres de usuario y contraseñas en todos los sitios que admitan OpenID para evitar todas las molestias que eso genera. De hecho, gracias a como funciona OpenID, evitamos tener que gestionar todas las contraseñas de las diferentes webs en que estamos registrados y podemos modificar desde un único sitio la información personal que proporcionamos a cada web. Evidentemente, tiene el problema de que si nos roban la cuenta de OpenID nos roban todas las cuentas asociadas, pero por eso se están tomado tantas molestias en la seguridad.

En resumen, algo que yo creo necesario y que puede mejorar mucho la experiencia de usar internet.
Continue reading