django-pyroven är en Django app som ger en Django autentiserings backend som kan tillsättas till AUTHENTICATION_BACKENDS i Django inställningsmodulen:
AUTHENTICATION_BACKENDS = (
& Nbsp; 'pyroven.pyroven_django.RavenAuthBackend ",
& Nbsp; 'django.contrib.auth.backends.ModelBackend'
)
Detta gör både normal Django inloggning och Raven inloggning.
Allt med hjälp pyroven bör se till att konfigurationen är laddad; detta görs genom att sätta config variabeln i Raven singleton klassen:
från pyroven import RavenConfig
från pyroven.pyroven_django import Raven
def konfigurera ():
& Nbsp; r = Raven ()
& Nbsp; om r.config är Ingen:
& Nbsp; r.config = RavenConfig ("raven.ini")
Inloggningssidan ska omdirigera användare till Raven:
def raven_login (begäran):
& Nbsp; # Se till att vi är rätt konfigurerad
& Nbsp; configure ()
& Nbsp; # Få Raven objektet och returnera en omdirigering till Raven servern
& Nbsp; r = Raven ()
& Nbsp; retur r.get_login_redirect ()
När användaren har autentiserad med Korpen kommer Raven servern omdirigera dem tillbaka till din webbplats (den exakta adressen anges i .ini filen ovan). Avkastningen sidan ska ringa Django autentisera och inloggningsfunktioner med ett symboliskt emot från Raven servern via HTTP GET:
från django.contrib.auth import authenticate, inloggning
def raven_return (begäran):
& Nbsp; # Se till att vi är rätt konfigurerad
& Nbsp; configure ()
& Nbsp; # Få token som Raven servern skickade oss - detta borde verkligen
& Nbsp; # har ett försök / utom runt den för att fånga KeyError
& Nbsp; token = request.GET ['WLS-Response "]
& Nbsp; # Se om detta är ett giltigt token
& Nbsp; user = authenticate (response_str = token)
& Nbsp; om användaren är Ingen:
& Nbsp; # Någon sorts err
& Nbsp; annars:
& Nbsp; inloggning (begäran, användaren)
& Nbsp; # Omdirigera någonstans förnuftigt
& Nbsp; återvända HttpResponseRedirect ('/')
Den ini-fil som Raven inställningarna laddas från har följande format:
[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': '/ sökväg / till / pubkey2.crt'}
Krav :
- Python
- Django
Kommentarer hittades inte