2014-10-02 4 views
6

Я создаю небольшую услугу REST. Я ищу различные методы проверки подлинности. Для сайтов я использовал модуль Flask-Login. Кажется, аутентификация сеанса. Модуль Flask-HttpAuth предоставляет методы аутентификации http и дайджест. Я немного смущен. Дополняют ли они друг друга? Что лучше использовать по какой причине?Flask-HttpAuth and Flask-Login

спасибо.

ответ

1

Да, они дополняют друг друга.

Вы также можете взглянуть на Колба-безопасности, все-в-один Lib:

  • аутентификации на основе Session
  • управления Роль
  • Шифрование паролей
  • Базовая проверка подлинности HTTP
  • Токен проверки подлинности на основе
  • маркеров активации на основе счета (необязательно)
  • Токен восстановление на основе пароля/сброс (опция)
  • регистрации пользователя (необязательно)
  • Войти отслеживания (необязательно)
  • JSON/Ajax поддержки
28

Для службы REST вам не нужен флажок-логин. Обычно в веб-службах вы не храните состояние клиента (что делает флажок-вход), вместо этого вы аутентифицируете каждый запрос. Flask-HTTPAuth делает это за вас.

Вы использовали бы оба варианта, только если у вас есть приложение, имеющее веб-компонент и компонент REST API. В этом случае Flask-Login будет обрабатывать маршруты веб-приложений, а Flask-HTTPAuth будет обрабатывать маршруты API.

Отказ от ответственности: Я являюсь автором Flask-HTTPAuth.

+0

Я посмотрел ваш отчет о ОТДЫХЕ. Кажется, я всегда должен отправлять пароль для входа.Я узнал о проверке сеанса. Надеюсь, он существует. Я развиваю свой велосипед, чтобы понять, что мне нужно. Извините, но ваших примеров было недостаточно для меня. Я перечитаю их позже. –

+3

Да, для API вполне нормально отправлять аутентификацию с каждым запросом. Вы можете использовать пользователя/пароль или же токены, которые предлагают большую безопасность, поскольку пропущенный токен можно отменить. Я показываю оба подхода в своих сообщениях в блоге. – Miguel

+4

Хм, автор одной из библиотек сам взял время, чтобы дать ответ, а @ viktor.likin даже не потрудился принять или отложить ответ. Спасибо Мигелю Гринбергу за предоставленную информацию и, пожалуйста, примите мое скромное голосование. –

1

Вы можете установить Basic Auth для колба в очень простым способом, без дополнительных модулей, с помощью декораторы.

Посмотрите на: http://flask.pocoo.org/snippets/8/.

С колбы-успокоительными, просто добавьте method_decorators = [required_auth] к атрибутам Resource класса.

Вы можете расширить фрагмент выше, чтобы, например, получить пользовательский поиск из базы данных .

Обратите внимание, что в архитектуре REST запросы stateless: вы не используете сеансы, но отправляете идентификационные маркеры вместе с каждым запросом (см. http://broadcast.oreilly.com/2009/12/principles-for-standardized-rest-authentication.html).

+0

Я согласен с тобой. Я искал готовое решение. Я могу сделать сам, о чем вы описали. Кажется, он должен существовать. –