2010-04-25 10 views
1

google-app-engine-django/ prétend avoir une "implémentation compatible App Engine de la structure d'authentification Django". Cette authentification fonctionne-t-elle uniquement avec les comptes Google? Est-il possible d'enregistrer un utilisateur avec un nom d'utilisateur/mot de passe et de l'authentifier avec ce nom d'utilisateur/mot de passe sans que cet utilisateur ait un compte Google?google-app-engine-django: authentification sans compte Google?

J'apprécierais tout pointeur sur la façon dont cela pourrait être fait avec google-app-engine-django sans l'authentification des comptes Google.

Répondre

1

L'authentification de compte Google est simplement une API fournie par App Engine - rien ne vous oblige à l'utiliser. En conséquence, toutes les fonctionnalités de Django, à l'exception de ses modèles (qui s'appuient sur une base de données relationnelle) sont disponibles dans l'assistant. Cependant, autant que je sache, l'assistant est obsolète et n'est plus supporté. Plus récent est app-engine-patch, mais même cela est déprécié en faveur de la nouvelle django-nonrel.

+0

Nick - Merci beaucoup pour votre réponse très informative. Après avoir vu l'assistant déconseillé dans app-engine-patch, déconseillé à nouveau en faveur de django-nonrel, j'ai eu froid sur Django sur GAE, autant que j'aime Django. Je suis en train d'échauffer le framework webapp de GAE; Cependant, cela laisse toujours le problème d'enregistrement/authentification/session d'utilisateur non-Google ouvert pour moi. Recommanderiez-vous tipfy comme un cadre pour cela? Alternativement, existe-t-il un paquet autonome qui peut gérer cela? Si non, serait-il possible d'utiliser des parties pertinentes du cadre tipfy avec webapp? – cv12

+0

Je n'ai pas utilisé tipfy, donc je ne peux pas vraiment le recommander. Pour vos besoins immédiats, il y a mon propre paquet, aeoid (http://github.com/arachnid/aeoid) - ou, vous pouvez attendre un peu, car OpenID et Oauth support sont sur la feuille de route. –

+0

Nick - Encore une fois, merci pour votre réponse. Mon public cible est assez non-geek, donc OpenID et OAuth ne sont pas idéaux. J'ai posé une autre question sur stackoverflow pour explorer cela un peu plus. En bref, le cas d'utilisation que j'ai à l'esprit est (1) les registres d'utilisateur avec e-mail et mot de passe (2) l'utilisateur peut s'authentifier avec ces informations d'identification et l'application peut maintenir une session pour l'utilisateur. Donc, en bref, ce que je cherche est un paquet qui permet l'authentification et les sessions de base. Je suis surpris GAE ne supporte pas ce modèle commun, mais je soupçonne que cela a à voir avec des problèmes de sécurité. – cv12

2

L'assistant ne fonctionne qu'avec des comptes google prêts à l'emploi. Ils n'ont pas implémenté complètement l'objet django.contrib.auth.models.User, ils ont seulement implémenté ce dont ils avaient besoin pour le lier à un compte google.

Si vous voulez utiliser l'assistant, vous devez apporter quelques modifications à la mise en œuvre User pour mettre pleinement en œuvre l'interface et vous aurez probablement besoin de modifier le middleware pour l'authentification, etc, et changer l'objet appengine_django.auth.models.User de sorte que le user = db.UserProperty n'est plus nécessaire.

+0

dar - Merci pour la réponse. La solution que vous suggérez semble hors de ma portée. Savez-vous si quelqu'un a fait ce que vous suggérez? – cv12

+0

Je ne connais aucune fourche auxiliaire qui l'ait fait. – dar