django-pyroven este o aplicatie Django, care oferă un backend autentificare Django care pot fi adăugate la AUTHENTICATION_BACKENDS în modulul Setări Django:
AUTHENTICATION_BACKENDS = (
& Nbsp; "pyroven.pyroven_django.RavenAuthBackend",
& Nbsp; "django.contrib.auth.backends.ModelBackend"
)
Acest lucru permite atât de conectare normale Django și autentificare Raven.
Orice folosind pyroven trebuie să vă asigurați că configurația este încărcat; acest lucru se face prin setarea variabilei de configurare în clasa Singleton Raven:
de la RavenConfig import pyroven
de la pyroven.pyroven_django import Raven
def configura ():
& Nbsp; r = Raven ()
& Nbsp; dacă r.config este Niciunul:
& Nbsp; r.config = RavenConfig ("raven.ini")
Pagina de conectare ar trebui să redirecționeze utilizatorii de Raven:
def raven_login (cerere):
& Nbsp; # Asigurarea suntem configurat corect
& Nbsp; de configurare ()
& Nbsp; # Ia obiectul Raven și a reveni o redirecționare la server Raven
& Nbsp; r = Raven ()
& Nbsp; r.get_login_redirect retur ()
În cazul în care utilizatorul a autentificat cu Raven, Raven serverul le va redirecționa înapoi la site-ul dvs. (URL-ul exact este specificat în fișierul .ini de mai sus). Pagina de retur trebuie să sunați la Django autentifica și funcțiile de conectare cu un jeton primit de la serverul Raven prin HTTP GET:
de la AUTHENTICATE import django.contrib.auth, autentificare
def raven_return (cerere):
& Nbsp; # Asigurarea suntem configurat corect
& Nbsp; de configurare ()
& Nbsp; # Ia token care serverul Raven ne-a trimis - acest trebuie într-adevăr
& Nbsp; # au un try / cu excepția jurul ei pentru a prinde KeyError
& Nbsp; jeton = request.GET ['WLS-răspuns "]
& Nbsp; # se vedea dacă acest lucru este un simbol valid
& Nbsp; utilizator = AUTHENTICATE (response_str = jeton)
& Nbsp; dacă folosire este Niciunul:
& Nbsp; # Un fel de aluneca
& Nbsp; altfel:
& Nbsp; de conectare (cerere, utilizator)
& Nbsp; # redirecționare undeva sensibil
& Nbsp; a reveni HttpResponseRedirect ("/")
Fișierul .ini care setările Raven sunt încărcate de are următorul format:
[Corb]
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': '/ calea / spre / pubkey2.crt "}
Cerințe :
- Python
- Django
Comentariile nu a fost găsit