37 votes

Authentification personnalisée dans le moteur d'applications Google (python)

Est-ce que quelqu'un sait ou sait quelque part que je peux apprendre à créer un processus d'authentification personnalisé à l'aide de python et du moteur d'applications Google?

Je ne souhaite pas utiliser les comptes Google pour l'authentification et je veux pouvoir créer mes propres utilisateurs.

Si ce n'est pas spécifiquement pour le moteur d'applications Google, aucune ressource sur la façon de mettre en œuvre l'authentification en utilisant python et django?

20voto

Ryan Christensen Points 4064

Bien django 1.0 a été mis à jour aujourd'hui sur Google AppEngine. Mais vous pouvez faire de l'authentification de l'utilisateur comme quelque chose que vous ne pouvez pas vraiment utiliser les sessions, car il est si énorme.

Il y a une session d'utilité dans l' http://gaeutilities.appspot.com/

http://gaeutilities.appspot.com/session

http://code.google.com/p/gaeutilities/

Ou,

Vous devez créer vos propres tables de l'utilisateur et de hachage ou de chiffrer les mots de passe, puis probablement de créer un système de jetons qui imite session avec juste un jeton de hachage ou l'uuid de cookie (les sessions sont juste des cookies de toute façon).

J'ai mis en place un peu avec tout de base de google.webapp demande et en-têtes de réponse. Je l'utilise généralement des uuid pour les clés primaires comme l'identifiant de l'utilisateur, puis crypter le mot de passe utilisateur et ont leur e-mail pour réinitialiser.

Si vous voulez autoriser les utilisateurs pour l'accès externe aux données dont vous pourriez regarder OAuth pour l'accès de l'application.

Si vous voulez juste pour stocker des données par un id et il est plus consommateur face à, peut-être juste utiliser openid comme stackoverflow, puis attacher des données de profil identifiant comme django profils (http://code.google.com/p/openid-selector/).

django 1.0 vient de sortir aujourd'hui sur GAE, mais je pense que les problèmes sont les mêmes, pas de sessions, vous devez vraiment vous créez votre propre stocker les données de session.

10voto

fiatjaf Points 954

C'est une jolie out-of-the-box solution, et fonctionne plutôt bien: http://code.scotchmedia.com/engineauth/docs/index.html

Il a un support intégré pour Facebook, Google+, Twitter, LinkedIn, GitHub et OpenId (via Google App Engine).

vous avez juste à rediriger l'utilisateur vers /auth/facebook ou /auth/google et ainsi de suite (cette url est personnalisable).

Il met également en œuvre des deux classes: User et UserProfilechaque User est un compte unique dans votre application et peut se rapporter à un ou plusieurs UserProfiles -- dont l'un est un de connexion de la stratégie que l'unique User a pour vous connecter à votre application (si c'est pas clair, c'est parce que mon anglais est très mauvais, les docs expliquer mieux).

P. S.: La documentation n'est pas très complet, mais le code est assez simple, court et explicite. Aussi, il y a une discussion ici, dans lequel l'auteur propose différentes réponses aux questions de la confusion et du début des utilisateurs.

8voto

Alex Martelli Points 330805

L' OpenID à la consommation (partie de l'excellent "app engine échantillons" open source project) travaille actuellement (malgré les mises en garde dans son README, qui est l'ancien), en plus de vous permettre d'utiliser OpenID pour vos utilisateurs de connexions.

django auth est également utilisable, par exemple, à ce projet (au moins de la users , pas nécessairement groups et permissions si l'on peut obtenir en travaillant tout le temps).

8voto

specialscope Points 1569

J'ai vu que ce qui apparaît dans google, à chaque fois que vous la recherche "de connexion Personnalisée dans app engine" donc J'ai décidé de donner une réponse qui a été au service de moi. Voici un exemple de l'application https://github.com/fredrikbonander/Webapp2-Sample-Applications

Il utilise

  1. webapp2 (déjà en FGA 1.6.2)
  2. Jinja2 (déjà en FGA 1.6.2)

Webapp2 semble être le meilleur pari pour GAE (construite sur le toit de la webapp en conséquence, les futurs preuve) si l'authentification à l'aide du cadre de prise en charge nativement par GAE est une bonne idée. Il y a beaucoup de d'autres cadres, mais beaucoup de piratage doit être fait sur la partie d'utilisateurs pour les faire travailler. Pour les personnes qui veulent construire une "stabilité" du site, tels hack de travail est extrêmement indésirable.

Je me rends compte aussi que la prise en charge SQL pour GAE est là maintenant et django seront pris en charge en mode natif. Nous savons tous django a construit dans l'authentification de l'utilisateur du système. Bien que, je pense, en particulier dans le cloud monde NoSQL est l'avenir. Je suis sûr qu'il y aura un cadre aussi bon que django dans l'avenir pour le NoSQL. Mais c'est moi, votre exigence peut exiger quelque chose d'autre.

7voto

Brian M. Hunt Points 12506

Voici un article de blog excellent et relativement récent (janvier 2013) intitulé Authentification des utilisateurs avec Webapp2 sur Google App Engine et le référentiel GitHub associé : abahgat/webapp2-user-accounts .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X