2011-10-03 11 views
27

Me gustaría rodar mi propio sistema de inicio de sesión para mi aplicación de Python Google App Engine (en lugar de utilizar el users api de Google).Webapp2 para la autenticación y el inicio de sesión

Estoy usando webapp2, y noté que hay un módulo webapp2_extras.auth y un incomplete auth tutorial.

¿Alguien sabe cómo puedo utilizar esta API para crear:

  • Registro de Usuario (tome un correo electrónico y una contraseña, y tal vez comprobar el correo electrónico)
  • de sesión del usuario con el correo electrónico y la contraseña

Una vez que tengo el correo electrónico y la contraseña, ¿dónde lo guardo? En el AuthStore? ¿Y cómo me autentico contra AuthStore?

+0

Puede consultar esta publicación en el blog: [Autenticación de usuario con webapp2 en Google App Engine] (http://blog.abahgat.com/2013/01/07/user-authentication-with-webapp2-on-google-app -motor/). Describe los pasos que debe seguir para construir su propia capa de autenticación mediante funcionalidades de apalancamiento ya incluidas en webapp2. Es una elaboración del procedimiento necesario para que el código esté vinculado en la respuesta de Eric. (Divulgación: Inicialmente escribí esa publicación en un intento de corregir la falta de documentación) – abahgat

Respuesta

4

Cómo y dónde almacena las credenciales de usuario y la información depende exclusivamente de usted; El módulo webapp2 al que hace referencia simplemente proporciona una interfaz a la que debe ajustarse si desea utilizar sus funciones. Una opción obvia (quizás la única sensata) sería el almacén de datos.

Sin embargo, recomiendo encarecidamente utilizar el construido en OpenID support en lugar de enrollar el suyo. Al hacerlo, está obligando a los usuarios a crear otro nombre de usuario y contraseña, y está asumiendo un conjunto completo de almacenamiento de contraseña y problemas de seguridad para usted.

+1

En general, estoy de acuerdo con su respuesta. De hecho, ya he implementado [inicio de sesión social de janrain] (http://www.janrain.com/products/engage/social-login) con openID, facebook, login de Google, etc. Sin embargo, me preocupa que pueda haber un porcentaje significativo de usuarios que están incómodos/no familiarizados con el inicio de sesión social/openID, y no usarán mi sitio si la única opción es iniciar sesión con otra cuenta. ¿Crees que mi preocupación es válida? – zzz

+2

@EricGustavson Depende completamente de su base de usuarios. Hay otros usuarios que se sentirán incómodos con la creación de nuevas cuentas para su sitio. OpenID y el inicio de sesión federado (por ejemplo, Facebook) son cada vez más comunes, por lo que la optimización para estos usuarios es un poco similar a la optimización para IE6. –

+1

@NickJohnson: ¿hay alguna manera agradable de que el soporte OpenID incorporado en appengine pueda jugar bien con Facebook? Más específicamente, ¿conoce alguna buena solución que pueda aprovechar el OpenID integrado para el inicio de sesión basado en OpenID y utilizar los mecanismos basados ​​en OAuth 2.0 de Facebook en el caso de que el usuario quiera utilizar el inicio de sesión de Facebook?(Habiéndolo mirado, mi impresión fue que realmente era necesario desplegar su propio mecanismo de autenticación si se requerían tanto OpenID como OAuth). –

3

Nueva respuesta a una vieja pregunta: Cualquiera que busque agregar autenticación propia e iniciar sesión en webapp2 en Google App Engine debe considerar Google App Engine Boilerplate.

Registro, inicio de sesión, cierre de sesión, restablecimiento de contraseña, inicio de sesión federado (Google, Twitter, Facebook, etc.), perfiles de usuario, etc.

Las tecnologías apalancadas incluyen, Python 2.7, NDB, Jinja2, WTForms, unittest, webtest, pyquery, OpenID (Google App Engine) y OAuth2 (para los proveedores de inicio de sesión federados que no admiten OpenID).

La demostración en línea es here.

+0

Su enlace de demostración en línea está muerto, ¡lo cual es una pena! Hubiera sido bueno verlo. – Fritz

+0

[** Enlace de demostración en línea **] (http://appengine.beecoss.com/) está trabajando nuevamente. – kjhughes

Cuestiones relacionadas