WSGI Middleware для аутентификации OAuth - PullRequest
8 голосов
/ 10 января 2011

Я создал очень маленькое веб-приложение, используя Flask . Теперь я хотел бы добавить основную аутентификацию на сайт (мне не нужна авторизация). Поскольку Flask не поддерживает аутентификацию и аутентификацию из коробки, я бы хотел подключить промежуточное программное обеспечение WSGI для выполнения этой работы. Веб-приложение используют только около 10 человек, все они в Facebook. Поэтому я бы хотел использовать интерфейс OAuth от Facebook.

Я быстро просмотрел список wsgi.org промежуточного программного обеспечения WSGI и заметил две вещи: доступное промежуточное программное обеспечение либо довольно сложное в использовании, либо уже устарело.

Я нашел следующие пакеты:

  • wsgiauth - Он датирован. Последнее обновление 2006 года, и я не могу найти какие-либо онлайн-документы
  • authkit - Выглядит очень хорошо, но не поддерживает OAuth
  • баррель - похоже, поддерживает только BASIC и авторизация на основе форм. Это также немного устарело (последний выпуск - 2008)
  • веб-модули - поддерживает только BASIC auth

Учитывая этот список, я бы сказал, что AuthKit - самый интересный. Увы, он не поддерживает OAuth. Скорее всего, я сделаю это. Но, пока я болтаю, мне любопытно посмотреть, есть ли кто-нибудь, у кого есть лучшее решение, лежащее вокруг ...

Ответы [ 3 ]

7 голосов
/ 10 января 2011

Flask имеет OpenAuth расширение , которое написано Armin Ronacher (автор Flask).Он предоставляет Flask поддержку Open Auth 1.0.

5 голосов
/ 10 января 2011

Вы должны взглянуть на repoze.who , который является платформой аутентификации для приложения WSGI с плагинами, доступными для:

  • HTTP basic / digest
  • Авторизация через HTML-формы с сохранением авторизационного билета в куки.
  • OpenID
  • OAuth
  • LDAP
  • Много еще я не знаю ...
2 голосов
/ 10 февраля 2011

Если вы хотите авторизовать клиентов на Facebook, почему бы не использовать предоставленный Python SDK, включающий интерфейс oauth, найденный здесь https://github.com/facebook/python-sdk.

...