Django-pyroven є додаток Django, яка забезпечує підсистем аутентифікації Django, які можуть бути додані до AUTHENTICATION_BACKENDS в налаштуваннях модуля Django:
AUTHENTICATION_BACKENDS = (
І NBSP; 'pyroven.pyroven_django.RavenAuthBackend',
І NBSP; 'django.contrib.auth.backends.ModelBackend "
)
Це дозволяє як нормальний логін Django і Raven логін.
Нічого допомогою pyroven повинні переконатися, що конфігурація завантажена; Це робиться шляхом установки змінної конфігурації в одинака класу Raven:
від pyroven імпорту RavenConfig
від імпорту pyroven.pyroven_django Ворона
Def налаштувати ():
І NBSP; г = Raven ()
І NBSP; якщо r.config НЕ None:
І NBSP; r.config = RavenConfig ("raven.ini")
Сторінка Ввійти повинні перенаправляти користувачів на Raven:
Def raven_login (запит):
І NBSP; # Переконайтеся, що ми правильно налаштований
І NBSP; Налаштування ()
І NBSP; # Отримання об'єкта Raven і повернутися перенаправлення на сервер Raven
І NBSP; г = Raven ()
І NBSP; повернення r.get_login_redirect ()
Коли користувач аутентифікації з Raven, сервер Raven буде перенаправляти їх на ваш сайт (точна адреса вказана в ini-файлі вище). Сторінка повернення повинно викликати Django аутентифікації та авторизації функції з маркером, отриманої від сервера Raven за допомогою HTTP GET:
від django.contrib.auth імпорт AUTHENTICATE, логін
Def raven_return (запит):
І NBSP; # Переконайтеся, що ми правильно налаштований
І NBSP; Налаштування ()
І NBSP; # Отримати лексему, яка Сервер Raven послав нас - це має дійсно
І NBSP; # спробувати / за винятком навколо нього, щоб зловити виняток KeyError
І NBSP; маркер = request.GET ['WLS-Response']
І NBSP; # Дивіться, якщо це діє знак
І NBSP; користувач = перевірку автентичності (response_str = маркер)
І NBSP; якщо користувач не None:
І NBSP; # Якийсь ERR
І NBSP; інше:
І NBSP; Логін (запит, користувач)
І NBSP; # Перенаправлення десь розумний
І NBSP; повернутися HttpResponseRedirect ('/')
INI-файл, який налаштування Raven завантажуються з має наступний формат:
[Ворон]
login_url = "http://raven.cam.ac.uk/auth/authenticate.html"
logout_url = "http://raven.cam.ac.uk/auth/logout.html"
RETURN_URL = "http://your.server.cam.ac.uk/ravenreturn/"
pubkeys = {'2': '/ шлях / до / pubkey2.crt'}
Вимоги
- Python
- Django
Коментар не знайдено