Закрепление RESTapi в колбе - PullRequest
       22

Закрепление RESTapi в колбе

8 голосов
/ 09 августа 2011

Приложение, которое я разрабатываю, использует много вызовов ajax.К сожалению, я столкнулся с проблемой при изучении того, как ограничить доступ к API.Например:

  • У меня есть таблица, которая выполняет ajax-вызов http://site/api/tasks/bob
    Мне нужно убедиться, что только Боб, вошедший в систему, может прочитать эту таблицу (в противном случае кто-то, кто знает шаблонможет запросить просмотр задач Боба, просто введя URL-адрес в браузере).
  • на другой странице, та же таблица должна иметь возможность вызывать http://site/api/tasks/all и показывать задачи всех пользователей (это может делать только администратор)

Спасибо, что уделили время на прочтение и, возможно, ответили на него.

1 Ответ

14 голосов
/ 09 августа 2011

Вид в тысячу футов - вам нужно аутентифицировать пользователя с помощью:

A) HTTP-Auth ( basic или digest ) для каждого запроса.

B) Сеансы на стороне сервера. (Пользователь аутентифицирует и получает ключ сеанса - его пользовательская информация сохраняется в серверной части сеанса на сервере, прикрепленной к этому ключу. После того, как у него есть сеанс, он может отправлять запросы, передавая свой ключ сеанса обратно вам (либо в URL, либо в cookie) и информация, к которой они имеют доступ, возвращается им.)

У Flask есть пара полезных расширений , которые имеют дело с большой частью такого рода вещей - посмотрите Flask-Login и Flask-Principal , чтобы см. примеры того, как можно добавить авторизацию в приложение Flask.

...