2011-04-13 3 views
10

Je n'ai jamais fait d'authentification auparavant, mais j'aimerais pouvoir suivre et authentifier les utilisateurs via openID. J'ai vu quelques modules qui permettent l'authentification openID avec WSGI, mais tous sont anciens et aucun ne mentionne python3, donc je suppose qu'ils ne fonctionnent pas.openID dans wsgi avec Python 3

Je voudrais quelques suggestions sur la façon de gérer/authentifier openID dans WSGI et python3. Une implémentation simple serait appréciée.

+2

'openid2rp' est censé fonctionner sur python3, mais ce n'est pas le cas, il se plaint de ne pas pouvoir importer htmllib (qui a été supprimé dans 3.0). Il semble vraiment qu'il n'y ait pas de bibliothèque openy Py3k pour le moment. :-((mis à part: c'est ce que vous obtenez pour l'utilisation de modules dépréciés dans 2.x) –

Répondre

3

Deux mises en garde sur cette réponse tout de suite:

  • Je vous ai bien versé dans votre cadre, urllib et ses amis, la mise en œuvre cela prendra encore un peu de temps. Ce n'est pas trivial.

  • Le code openid2rp ne regarde pas tout cela, hum, prêt.

Néanmoins, La dernière version de openid2rp peut être traduite avec 2to3 pour fonctionner en Python 3. Vous devrez corriger quelques petites choses.

L'exemple de code inclus ne fonctionnera pas, mais vous pouvez l'utiliser comme modèle pour écrire votre application. Si vous faites attention aux octets et aux chaînes, cela devrait prendre moins de deux ans pour obtenir une connexion OpenID. (:

J'ai réussi à le traduire en cherrypy cette façon Alors que ce pas ce que vous cherchez, il pourrait être un guide utile. http://paste.ubuntu.com/699338/

À titre d'exemple, ce genre de code reste encore après l'exécution 2to3:.

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

vous verrez ces choses que vous écrivez le login code réel

Ceci est mon __init__.py Notez que les méthodes que je ne le font pas y. et utiliser encore des bugs! http://paste.ubuntu.com/699354/