Крепление RESTapi в колбе

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

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

Спасибо за то, что вы читаете это и, возможно, отвечаете на него.

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

A) HTTP-Auth ( базовый или дайджест ) по каждому запросу.

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

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