2011-04-13 17 views
10

Nunca antes he hecho cosas de autenticación, pero me gustaría poder rastrear y autenticar usuarios a través de openID. Vi un par de módulos que permiten la autenticación openID con WSGI, pero todos son antiguos y ninguno menciona python3, así que supongo que no funcionan.openID en wsgi con Python 3

Me gustaría obtener algunas sugerencias sobre cómo manejar/autenticar openID en WSGI y python3. Una implementación simple sería apreciada.

+2

'openid2rp' se supone que funciona en python3, pero no lo hace, se queja de que no se puede importar htmllib (que se eliminó en 3.0). Realmente parece que no hay una biblioteca abierta Py3k en este momento. :-((a un lado: eso es lo que obtienes por usar módulos obsoletos en 2.x) –

Respuesta

3

Dos advertencias sobre esta respuesta de inmediato:

  • He de que está bien versado en su marco, urllib y de los amigos, la aplicación de esta aún llevará un poco de tiempo. No es trivial.

  • El código de openid2rp no se ve todo eso, uhm, listo.

Nada menos. La última versión de openid2rp se puede traducir con 2to3 para trabajar en Python 3. Tendrá que arreglar un par de cosas pequeñas.

El código de ejemplo incluido no funcionará, pero puede usarlo como plantilla para escribir su aplicación. Si tiene cuidado con los bytes y las cadenas, le tomará menos de dos años obtener un inicio de sesión de OpenID. (:

He conseguido traducirla en cherrypy esta manera Si bien eso no es lo que está buscando, puede ser que sea una guía útil:. http://paste.ubuntu.com/699338/

A modo de ejemplo, este tipo de código todavía queda después de ejecutar 2to3:.

- mac_key = base64.decodestring(session['mac_key']) 
+ mac_key = base64.b64decode(session['mac_key'].encode()) 

Vas a ver estas cosas como se escribe el nombre de usuario de código real

Esta es mi __init__.py Tenga en cuenta que los métodos que no hacen y. ¡y el uso todavía tiene errores! http://paste.ubuntu.com/699354/