Django-pyroven είναι ένα app Django που παρέχει ένα backend ταυτότητας Django που μπορούν να προστεθούν στο AUTHENTICATION_BACKENDS στην ενότητα Ρυθμίσεις Django:
AUTHENTICATION_BACKENDS = (
& Nbsp? 'Pyroven.pyroven_django.RavenAuthBackend »,
& Nbsp? 'Django.contrib.auth.backends.ModelBackend »
)
Αυτό επιτρέπει τόσο την κανονική είσοδο Django και Raven σύνδεσης.
Οτιδήποτε χρησιμοποιώντας pyroven θα πρέπει να βεβαιωθείτε ότι η διαμόρφωση είναι φορτωμένο? Αυτό γίνεται θέτοντας τη μεταβλητή config στο Raven μονήρεις κατηγορία:
από pyroven RavenConfig εισαγωγής
από την εισαγωγή pyroven.pyroven_django Raven
def διαμορφώσετε ():
& Nbsp? R = Raven ()
& Nbsp? Αν r.config είναι Κανένα:
& Nbsp? R.config = RavenConfig ("raven.ini")
Η σελίδα σύνδεσης θα πρέπει να ανακατευθύνουν τους χρήστες σε Κοράκι:
def raven_login (αίτηση):
& Nbsp? # Βεβαιωθείτε ότι είμαστε κατάλληλα διαμορφωμένο
& Nbsp? Διαμόρφωση ()
& Nbsp? # Αποκτήστε το αντικείμενο Raven και να επιστρέψει μια ανακατεύθυνση στο διακομιστή Raven
& Nbsp? R = Raven ()
& Nbsp? R.get_login_redirect επιστροφής ()
Όταν ο χρήστης έχει ταυτοποιηθεί με Κοράκι, ο διακομιστής Raven θα τους ανακατευθύνει πίσω στην περιοχή σας (η ακριβής διεύθυνση URL καθορίζεται στο αρχείο .ini παραπάνω). Η σελίδα επιστροφή θα πρέπει να καλέσει ο Django ταυτότητας και σύνδεσης λειτουργίες με μια συμβολική έλαβε από το διακομιστή Raven μέσω HTTP GET:
από django.contrib.auth Authenticate εισαγωγής, Είσοδος
def raven_return (αίτηση):
& Nbsp? # Βεβαιωθείτε ότι είμαστε κατάλληλα διαμορφωμένο
& Nbsp? Διαμόρφωση ()
& Nbsp? # Αποκτήστε το διακριτικό που ο διακομιστής Raven μας έστειλε - Αυτό θα πρέπει πράγματι
& Nbsp? # Έχετε μια δοκιμή / εκτός γύρω του για να πιάσει KeyError
& Nbsp? Συμβολική = request.GET [«WLS-απάντηση»]
& Nbsp? # Δείτε εάν αυτό είναι ένα έγκυρο κουπόνι
& Nbsp? User = ταυτότητας (response_str = token)
& Nbsp? Αν ο χρήστης είναι Κανένα:
& 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»: «/ path / to / pubkey2.crt '}
Απαιτήσεις :
- Python
- Django
Τα σχόλια δεν βρέθηκε