Последние два дня я исследовал фактор Джанго 2. Я наконец-то дошел до того, что заставил работать проверку телефона Джанго Твилио. Вот код рабочий код ...
from authy.api import AuthyApiClient
from django.conf import settings
from django.shortcuts import render, redirect
from .forms import VerifyForm, TokenForm
authy_api = AuthyApiClient(settings.ACCOUNT_SECURITY_API_KEY)
def SetupView(request):
if request.method == 'POST':
form = VerifyForm(request.POST)
if form.is_valid():
request.session['phone_number'] = form.cleaned_data['phone_number']
request.session['country_code'] = form.cleaned_data['country_code']
authy_api.phones.verification_start(
form.cleaned_data['phone_number'],
form.cleaned_data['country_code'],
via=form.cleaned_data['via']
)
return redirect('token_validation')
else:
form = VerifyForm()
return render(request, 'registration/verify.html', {'form': form})
def token_validation(request):
if request.method == 'POST':
form = TokenForm(request.POST)
if form.is_valid():
verification = authy_api.phones.verification_check(
request.session['phone_number'],
request.session['country_code'],
form.cleaned_data['token']
)
if verification.ok():
request.session['is_verified'] = True
return redirect('verified')
else:
for error_msg in verification.errors().values():
form.add_error(None, error_msg)
else:
form = TokenForm()
return render(request, 'registration/token_validation.html', {'form': form})
def verified(request):
if not request.session.get('is_verified'):
return redirect('phone_verification')
return render(request, 'registration/verified.html')
Использование вышеуказанного кода вместе с указанием ACCOUNT_SECURITY_API_KEY в моем файле settings.py - это все, что требовалось для получения кода выше, чтобы передать 4-значный код на мой телефон. Прогресс ...
Однако то, что я действительно пытаюсь сделать, это использовать приложение AUTHY для предоставления кода входа в систему ... Я посмотрел на следующую страницу ... https://www.twilio.com/docs/authy/quickstart/two-factor-authentication-python-django#linkcode И код не загрузить на этой странице ... кто-нибудь имеет опыт или знает, где искать, чтобы я мог заставить Django работать с Authy и получать код, который меняется каждые 20 секунд, в отличие от примера с 4-значным выводом, показанного выше? Заранее спасибо за любые мысли.