مصادقة django وإعادة تعيين كلمة المرور

1

لذلك ، أنا أعمل حاليًا على مشروع تطبيق ويب ونفذت المصادقة وتأكيد كلمة المرور بنجاح.

But my issue is that i did it using html templates and now the requirement came up that we have to develop our application using api's for the backened.

الآن ، أنا جديد على واجهة برمجة التطبيقات (API) وأرتبك كثيرًا حول كيفية استخدام نظام المصادقة الذي أنشأته (حيث يتعين علينا توفير نموذج للفئة المنفذة المضمنة وهم يقبلون القيم من تلقاء أنفسهم)

هل من الممكن رؤية وإدارة المستخدمين المسجلين من وراء الكود بينما لا تزال تستخدم آلية مدمجة

2 الاجابة

2
افضل جواب

لتغيير كلمة المرور ، يمكنك استخدام هذا العرض العام باستخدام إطار عمل Django auth يحمل في ثناياه عوامل

@login_required
def change_password(request):
    if request.method == "POST":
        form = PasswordChangeForm(request.user, request.POST)
        if form.is_valid():
            user = form.save()
            # Important to update the session otherwise user will have to login again
            update_session_auth_hash(request, user)
            # Server side alert
            print("Password changed for {0}".format(user.username))
            return redirect('/index/')
        else:
            print(form.errors)
    else:
        form = PasswordChangeForm(request.user)
    return render(request, 'website/changepassword.html', {'form': form})

تحتاج إلى استخدام djangorestframework ، واستخدم الديكور @apiview(['GET', 'POST']) لإنشاء RestAPI

:مؤلف
0

يمكنك استخدام TokenAuthentication المتوفر في إطار عمل django rest. انظر ماذا تقول الوثائق:

TokenAuthentication

يستخدم نظام المصادقة هذا نظام مصادقة HTTP بسيطًا يستند إلى الرمز المميز. مصادقة الرمز المميز مناسبة لإعدادات خادم العميل ، مثل سطح المكتب الأصلي وعملاء الهاتف المحمول.

لاستخدام مخطط TokenAuthentication ، ستحتاج إلى تكوين فئات المصادقة لتضمين TokenAuthentication ، بالإضافة إلى تضمين rest_framework.authtoken في إعداد INSTALLED_APPS:

INSTALLED_APPS = (
...
'rest_framework.authtoken'

)

ملاحظة: تأكد من تشغيل Manage.py ترحيل بعد تغيير إعداداتك. يوفر التطبيق rest_framework.authtoken عمليات ترحيل قاعدة بيانات Django.

ستحتاج أيضًا إلى إنشاء رموز مميزة للمستخدمين.

from rest_framework.authtoken.models import Token

token = Token.objects.create(user=...)
print token.key

لكي يقوم العملاء بالمصادقة ، يجب تضمين مفتاح الرمز المميز في رأس HTTP للمصادقة. يجب أن يكون المفتاح مسبوقًا بالسلسلة الحرفية "Token" ، مع وجود مسافة بيضاء تفصل بين السلاسل. فمثلا:

Authorization: Token 9944b09199c62bcf9418ad846dd0e4bbdfc6ee4b

ملاحظة: إذا كنت ترغب في استخدام كلمة رئيسية مختلفة في الرأس ، مثل Bearer ، فما عليك سوى فئة فرعية TokenAuthentication وتعيين متغير فئة الكلمة الرئيسية.

في حالة المصادقة بنجاح ، يوفر TokenAuthentication بيانات الاعتماد التالية.

  • سوف يكون request.user مثيل مستخدم Django.
  • request.auth سيكون rest_framework.authtoken.models.Token مثال.

ستؤدي الاستجابات غير المصادق التي تم رفض إذنها إلى استجابة HTTP 401 غير مصرح بها باستخدام رأس مصادقة WWW مناسب. فمثلا:

WWW-Authenticate: Token

قد تكون أداة سطر الأوامر curl مفيدة لاختبار واجهات برمجة التطبيقات المصدق عليها. فمثلا:

curl -X GET http://127.0.0.1:8000/api/example/ -H 'Authorization: Token 9944b09199c62bcf9418ad846dd0e4bbdfc6ee4b'

ملاحظة: إذا كنت تستخدم TokenAuthentication في الإنتاج ، يجب عليك التأكد من أن واجهة برمجة التطبيقات الخاصة بك متاحة فقط عبر https.

المصدر: http://www.django-rest-framework.org/api-guide/authentication/#tokenauthentication

:مؤلف

أسئلة ذات صلة

فوق
قائمة طعام