2011-08-08 16 views
8

La aplicación que estoy deving utiliza un montón de llamadas ajax. Lamentablemente, me encontré con un problema al investigar sobre cómo restringir el acceso a la API. Por ejemplo:RESTapi en un matraz

  • tengo tabla que hace una llamada AJAX a http://site/api/tasks/bob
    necesito para asegurarse de que sólo la sacudida, conectado, puede leer esa mesa (de lo contrario alguien que conoce el patrón podría solicitar ver bob tareas simplemente ingresando la url en el navegador).
  • en una página diferente, la misma mesa tiene que ser capaz de llamar http://site/api/tasks/all y mostrar las tareas de todos los usuarios (sólo un administrador debe ser capaz de hacer eso)

Gracias por su tiempo para leer esto y tal vez responderlo.

Respuesta

14

La vista mil pies es lo que necesita para autenticar al usuario, ya sea con:

A) HTTP-Auth (ya sea basic o digest) en cada petición.

B) sesiones del lado del servidor. (El usuario autentica y recibe una clave de sesión; su información de usuario se almacena en la sesión backend en el servidor, adjunta a esa clave. Una vez que tienen una sesión, pueden realizar solicitudes devolviéndole la clave de sesión (ya sea en la URL o en una galleta) y la información que tienen acceso a es devuelto a ellos)

frasco tiene un par de útiles extensions que se ocupan de una gran parte de este tipo de cosas -. echa un vistazo a Flask-Login y Flask-Principal para ver ejemplos de cómo la autorización se puede agregar a una aplicación Flask.

+0

Me encantaría encontrar más información sobre cómo implementar el segundo. – pocorschi

+0

@InnocentPixel - Flask ya tiene una api de sesión completamente documentada. Ver: http://flask.pocoo.org/docs/api/#sessions –

Cuestiones relacionadas