Django-pyroven เป็น app Django ที่ให้การรับรองความถูก Django แบ็กเอนด์ซึ่งสามารถเพิ่มการ AUTHENTICATION_BACKENDS ในการตั้งค่า Django โมดูล:
AUTHENTICATION_BACKENDS = (
& nbsp; 'pyroven.pyroven_django.RavenAuthBackend',
& nbsp; 'django.contrib.auth.backends.ModelBackend'
)
นี้จะช่วยให้ทั้งสองเข้าสู่ระบบ Django ปกติและกาเข้าสู่ระบบ
อะไรที่ใช้ pyroven ควรตรวจสอบให้แน่ใจว่าการกำหนดค่าจะโหลด; นี้จะกระทำโดยการตั้งค่าตัวแปรในการกำหนดค่ากาชั้นเดี่ยว:
จากการนำเข้า pyroven RavenConfig
จากการนำเข้า pyroven.pyroven_django กา
def กำหนดค่า ():
& nbsp; r = กา ()
& nbsp; ถ้า r.config คือไม่มี:
& nbsp; r.config = RavenConfig ("raven.ini")
หน้าเข้าสู่ระบบควรจะเปลี่ยนเส้นทางผู้ใช้สามารถกา:
def raven_login (ตามคำขอ)
& nbsp; # ให้แน่ใจว่าเรากำลังกำหนดค่าอย่างถูกต้อง
& nbsp; กำหนดค่า ()
& nbsp; # รับวัตถุกาและกลับเปลี่ยนเส้นทางไปยังเซิร์ฟเวอร์กา
& nbsp; r = กา ()
& nbsp; r.get_login_redirect ผลตอบแทน ()
เมื่อผู้ใช้มีการรับรองความถูกต้องกับกากาเซิร์ฟเวอร์จะเปลี่ยนเส้นทางไปกลับไปยังเว็บไซต์ของคุณ (URL ที่ถูกต้องระบุไว้ในไฟล์ ini ของด้านบน) หน้าผลตอบแทนที่ควรจะเรียก Django รับรองความถูกต้องและฟังก์ชั่นการเข้าสู่ระบบกับโทเค็นที่ได้รับจากเซิร์ฟเวอร์กาผ่านทาง HTTP GET:
จากการนำเข้า django.contrib.auth รับรองความถูกต้องเข้าสู่ระบบ
def raven_return (ตามคำขอ)
& nbsp; # ให้แน่ใจว่าเรากำลังกำหนดค่าอย่างถูกต้อง
& nbsp; กำหนดค่า ()
& nbsp; # รับ token ที่เซิร์ฟเวอร์กาส่งให้เรา - นี้ควรจริงๆ
& nbsp; # ได้ลอง / ยกเว้นรอบ ๆ มันจะจับ KeyError
& nbsp; token = request.GET ['แอลเอสตอบสนอง']
& nbsp; # ดูว่านี้เป็นสัญลักษณ์ที่ถูกต้อง
& nbsp; = ผู้รับรองความถูกต้อง (response_str = token)
& 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': '/ path / to / pubkey2.crt'}
ต้องการ
- หลาม
- Django
ความคิดเห็นที่ไม่พบ