English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
دخول التحقق
يقدم django.contrib.auth العديد من الطرق، حيث سنقوم بشرح ثلاثة منها هنا:
1 authenticate(**credentials) يقدم التحقق من المستخدم، أي التحقق من صحة اسم المستخدم وكلمة المرور
عادة، تحتاج إلى كلمتين مفتاحيتين هما username وpassword
إذا كانت معلومات التحقق صالحة، سيتم العودة إلى obj䁤4}ct User. ستقوم authenticate() بتعيين خاصية على obj䁤4}ct User لتحديد أي واجهة تحقق قامت بتحقق من المستخدم، ويجب أن تكون هذه المعلومات ضرورية في عملية الدخول اللاحقة. عندما نحاول الدخول إلى obj䁤4}ct User تم استخراجه مباشرة من قاعدة البيانات دون استخدام authenticate()، سيتم إظهار خطأ!!
user = authentica(username='someone',password='somepassword')
2 login(HttpRequest, user, backend=None)
تأخذ هذه الوظيفة مكتبة HttpRequest ومعرف المستخدم المعتمد
استخدمت هذه الوظيفة مكتبة جلسة django لتقديم معلومات session id وغيرها إلى المستخدم المعتمد
من django.contrib.auth استيراد authenticate, login def my_view(request): username = request.POST['username'] password = request.POST['password'] user = authenticate(username=username, password=password) إذا كان user غير None: login(request, user) # توجيه إلى صفحة النجاح. ... else: # عودة رسالة خطأ تسجيل الدخول غير صالح. ...
3 logout(request) إلغاء تسجيل المستخدم
من django.contrib.auth استيراد logout def logout_view(request): logout(request) # توجيه إلى صفحة النجاح.
هذه الوظيفة تأخذ مكتبة HttpRequest، وليس لديها أي قيمة عائدة.
عند استدعاء هذه الوظيفة، سيتم مسح معلومات الجلسة الحالية بالكامل
حتى لو لم يتم تسجيل الدخول لهذا المستخدم، فإن استدعاء هذه الوظيفة لن يؤدي إلى خطأ
فقط السجلين يمكنهم الوصول
إذا كنت ترغب في:
1 يمكن للزوار الوصول إلى بعض الصفحات فقط بعد تسجيل الدخول
2 إذا كان المستخدم لم يكن مسجلًا دخولًا وتم زيارة هذه الصفحة، فسيتم توجيهه مباشرة إلى صفحة تسجيل الدخول
3 بعد أن يكمل المستخدم تسجيل الدخول في صفحة تسجيل الدخول الموجهة، يتم زيارة الموقع الذي كان يزوره من قبل تلقائيًا
لدينا عدة طرق لتحقيق ذلك:
1 العمل غير النظيف
التحقق من request.user.is_authenticated()
من django.conf استيراد settings من django.shortcuts استيراد redirect def my_view(request): if not request.user.is_authenticated(): return redirect('%s?next=%s' % (settings.LOGIN_URL, request.path))
2 ديكورات login_required في دنامو
لقد قام دنامو بتصميم ديكورات لظروف مثل هذه: login_requierd()
من django.contrib.auth.decorators import login_required @login_required def my_view(request): ...
إجراء التحقق من الاعتماد قبل تشغيل وظيفة my_view.
1 إذا لم يكن المستخدم قد قام بالتسجيل الدخول، سيقوم بالتحويل إلى عنوان URL التسجيل الدخول الافتراضي لدنامو '/accounts/login/' (يمكنك تعديل هذا القيمة في ملف الإعدادات من خلال(LOGIN_URL)). وسيتم نقل مسار الURL المطلق للزيارة الحالية (سيتم تحويل إلى هذا المسار بعد الدخول بنجاح).
يمكنك تكوين اسم المفتاح login_url لتقديم URL الدخول.
يمكنك تكوين اسم المفتاح redirect_field_name لتقديم مسار الURL المطلق للزيارة الحالية.
إذا كنت ترغب في استخدام واجهة التسجيل الدخول الافتراضية لدنامو، يمكنك تكوين هذا في urls.py، فإن لم يتم تسجيل الدخول، سيقوم البرنامج بالتحويل تلقائيًا إلى
"templates\registration\login.html" هذا النمذجة.
#urls.py ... (r'^accounts/login/$', 'django.contrib.auth.views.login'),
2 إذا كان المستخدم قد قام بالتسجيل الدخول، سيقوم بالدخول إلى الصفحة العادية
إليكم جميع المعلومات التي قدمها لك المحرر حول تصحيح الاعتماد والوصول في دينامو، نأمل أن تشجعوا على دعم دليل التعليمات~