tutorial prices google español engine costs app google-app-engine angularjs

google-app-engine - español - google cloud app engine prices



Aplicación autenticada en appengine con angularjs (2)

Consulte también esta pregunta: Limitar el acceso a un archivo estático con GAE al servir contenido estático.

En su controlador, puede usar el servicio de usuario para averiguar quién inició sesión y si este "usuario" es un administrador. Un ejemplo: https://developers.google.com/appengine/docs/python/users/overview

OAUTH2 es una mejor opción si usa una aplicación cliente.

Preparar:

  • plantillas: angularjs (todo servido estáticamente desde app.yaml)
  • respuestas api: json utilizadas por los controladores angularjs para extraer datos de la aplicación

El contenido de la página se sirve desde un archivo estático, por lo que no es posible usar users.create_login_url () , users.create_logout_url () , etc.

¿Cómo se suele hacer para que los usuarios inicien o cierren sesión, para saber si el usuario está conectado / desconectado, el usuario es administrador de una aplicación como esta?


De hecho, estoy trabajando en una solución a este problema. El proyecto se llama Sapling , es un proyecto inicial de AngularJS que cubre la administración de usuarios.

Este es el enfoque que tomé:

  1. El usuario llega al sitio: carga html y javascript

  2. Después de cargar Angular, haz una solicitud GET a ''/api/user/me'' . Si el usuario se registra a cambio de una representación del usuario, Ej.

    { "name": "Bob", "admin": false, // ect. }

    Si el usuario no está conectado, se devuelve un error 401 .

  3. Si se devuelve un objeto de usuario, verifique si el usuario también es y administrador. Si se recibe un 401 redirija al usuario a las páginas de inicio de sesión (puede crear una página de inicio de sesión dentro de su aplicación Angular, o si cree que el usuario no se confundirá, puede enviarlos al inicio de sesión de Google directamente).

Entonces, ¿cómo haces esto con el servicio de usuario de App Engine?

En su controlador de solicitud para la url ''/ api / user / me''

Llamar a get_current_user() y is_current_user_admin()

  • El usuario ha iniciado sesión: añada el administrador boolean y devuelva la representación del usuario como json.

  • El usuario no ha iniciado sesión - devuelve un 401 no autorizado, es decir, response.set_status(401)

¿Cómo se dirige al usuario a las URL de inicio de sesión y de cierre de sesión?

Puede crear controladores de solicitudes en las siguientes URL:

''api / usuario / login''

webapp2.redirect(users.create_login_url())

''api / usuario / logout''

webapp2.redirect(users.create_logout_url())

Y dirígelos a los usuarios desde Angular.

Creo que cubrí los conceptos básicos. Si necesita más detalles, por favor hágamelo saber.