با درود
دوستان در اینجا می خوام بحث احراز هویت دوعامله در Django با Google Authenticator را مورد بررسی قرار دهیم و یک راهکار سریعتر برای این کار ارایه کنیم
همانطور که می دانید اگر مطلب بالا را جستجو کنید یکی از مطالبی که در بین گزینه های اول جستجو است لینک گیت هاب زیر هست
https://github.com/wpcodevo/Django_2FA_Project
ولی همان طور که در لینک بالا و لینکهای شبیه به این توضیح داده شده است کد زیادی برای این مطلب نوشته شده که برای کسانی که تازه شروع به برنامه نویسی با جنگو کرده اند کمی گیج کننده به نظر می رسد . به همین دلیل ما چند خط کد برای این کار به صورت زیر ارایه کرده ایم
if request.method == 'POST': otp_chk = pyotp.TOTP('H4ZT2CIHQM5XO2VUSZPHWTBHMNQBDY3B') username = request.POST['username'] password = request.POST['password'] if otpcode != otp_chk.now(): return redirect ('Logout') user = authenticate(request, username=username, password=password) if user is not None : ...
همانطور که توجه می کنید همین دو خط (خط 2 و 5 ) جهت چک کردن کد مربوطه کافی است .
لازم به ذکر است که جهت دریافت هش برای یک کاربر خاص هم باید طبق داکیومنت پکیج pyotp عمل کنید و مقدار هش مربوط به کاربر مربوطه را در دیتابیس ذخیره کنید که به دلیل عدم زیاده گویی در این مبحث ، امکان دریافت این هش توسط خط فرمان و ذخیره آن در دیتابیس ( برای یکبار ) از آن صرف نظر کرده و به مبحث دیگری موکول می کنیم.