Django-pyroven je aplikace, Django, který poskytuje ověřování backend Django, které mohou být přidány do AUTHENTICATION_BACKENDS v nastavení modulu Django:
AUTHENTICATION_BACKENDS = (
& Nbsp; "pyroven.pyroven_django.RavenAuthBackend"
& Nbsp; "django.contrib.auth.backends.ModelBackend"
)
To umožňuje i normální Django přihlašovací jméno a Raven přihlášení.
Něco pomocí pyroven se měli ujistit, že konfigurace je načten; to se provádí nastavením proměnné config ve třídě ojedinělým Raven:
od pyroven dovozu RavenConfig
od pyroven.pyroven_django dovozu Raven
def konfigurace ():
& Nbsp; r = Raven ()
& Nbsp; v případě, r.config je None:
& Nbsp; r.config = RavenConfig ("raven.ini")
Přihlašovací stránka by měla přesměrovat uživatele na Raven:
def raven_login (žádost):
& Nbsp; # Ujistěte se, že jsme správně nakonfigurován
& Nbsp; configure ()
& Nbsp; # Získat objekt Raven a vrátí přesměrování na server Raven
& Nbsp; r = Raven ()
& Nbsp; return r.get_login_redirect ()
Jakmile uživatel ověřen s Raven, bude server Raven přesměrovat je na vaše stránky (přesná adresa URL je uvedeno v souboru INI výše). Stránka návrat by měl zavolat Django ověření a přihlášení funguje s tokenu obdržel od serveru Raven přes HTTP GET:
od django.contrib.auth import ověřovat přihlášení
def raven_return (žádost):
& Nbsp; # Ujistěte se, že jsme správně nakonfigurován
& Nbsp; configure ()
& Nbsp; # Získat token, který nám poslal serveru Raven - to by opravdu
& Nbsp; # mít vyzkoušet / s výjimkou kolem něj chytit KeyError
& Nbsp; žeton = request.GET ['WLS-Response "]
& Nbsp; # Podívejte se, jestli je to platný projev
& Nbsp; user = ověření (response_str = tokenu)
& Nbsp; pokud uživatel je None:
& Nbsp; # Nějaká ERR
& Nbsp; jinde:
& Nbsp; login (požadavek, uživatel)
& Nbsp; # přesměrování někde rozumný
& Nbsp; návrat HttpResponseRedirect ("/")
INI soubor, který nastavení Raven jsou načítány z má následující formát:
[Havran]
adresy 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": "/ cesta / k / pubkey2.crt"}
Požadavky na :
- Python
- Django
Komentáře nebyl nalezen