Django-pyroven היא אפליקציה המספקת Django Django backend אימות שניתן להוסיף לAUTHENTICATION_BACKENDS במודול הגדרות Django:
AUTHENTICATION_BACKENDS = (
& Nbsp; 'pyroven.pyroven_django.RavenAuthBackend',
& Nbsp; 'django.contrib.auth.backends.ModelBackend'
)
זה מאפשר גם התחברות Django נורמלית והתחברות רייבן.
כל דבר באמצעות pyroven צריך לוודא שהתצורה היא טעונה; זה נעשה על ידי ההגדרה משתנה config בכיתת סינגלטון העורב:
מRavenConfig יבוא pyroven
מיבוא pyroven.pyroven_django רייבן
def להגדיר ():
& Nbsp; r = רייבן ()
& Nbsp; אם r.config הוא ללא:
& Nbsp; r.config = RavenConfig ("raven.ini")
דף הכניסה צריך לכוון את המשתמשים לעורבים:
raven_login def (בקשה):
& Nbsp; # ודא שאנחנו מוגדרים כראוי
& Nbsp; configure ()
& Nbsp; # קבל את אובייקט רייבן ולחזור הפניה לשרת רייבן
& Nbsp; r = רייבן ()
& Nbsp; r.get_login_redirect תמורה ()
כאשר המשתמש מאומת עם רייבן, רייבן השרת יהיה להפנות אותם אל האתר שלך (הכתובת המדויקת מצוינת בקובץ ini לעיל). דף החזרה צריך לקרוא Django לאמת ופונקציות התחברות עם אסימון שהתקבל מהשרת רייבן דרך HTTP GET:
מauthenticate יבוא django.contrib.auth, התחברות
raven_return def (בקשה):
& Nbsp; # ודא שאנחנו מוגדרים כראוי
& Nbsp; configure ()
& Nbsp; # קבל את האסימון ששרת Raven שלח לנו - זה באמת צריך
& Nbsp; יש לי # לנסות / פרט סביבו לתפוס KeyError
& Nbsp; אסימון = request.GET ['WLS-תגובה']
& Nbsp; # לראות אם זה אסימון חוקי
& Nbsp; משתמשים = authenticate (response_str = אסימון)
& Nbsp; אם משתמש הוא ללא:
& Nbsp; # איזה סוג של לשגות
& Nbsp; אחר:
& Nbsp; כניסה (בקשה, משתמש)
& Nbsp; # הפניה איפשהו הגיוני
& Nbsp; לחזור HttpResponseRedirect ('/')
קובץ ini שהגדרות רייבן נטענות מיש הפורמט הבא:
[עורב]
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
תגובות לא נמצא