如何为双因素身份验证配置Django Authy

问题描述 投票:0回答:1

我在过去几天一直在研究Django 2因素。我终于找到了让Django Twilio手机验证工作的地步。这是工作代码的代码......

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')

使用上面的代码以及在settings.py文件中指定ACCOUNT_SECURITY_API_KEY即可获得上述代码将4位数代码传递到手机所需的全部内容。进展...

但是,我真正想要实现的是利用AUTHY应用程序提供登录代码....我看了下面的页面... https://www.twilio.com/docs/authy/quickstart/two-factor-authentication-python-django#linkcode并且代码没有加载到这个页面上...任何人都有经验或知道在哪里看,以便我可以让Django使用Authy并获得每20秒更改一次的代码,而不是上面显示的4位数字引脚示例?提前感谢任何想法。

django django-rest-framework twilio twilio-api twilio-functions
1个回答
0
投票

Twilio开发者传道者在这里。

您的问题是您使用的是verification API,这是一次验证电话号码并且不使用Authy应用程序。

相反,你想要APIs for one time passwords。我不知道你链接的教程有什么问题,但是应用程序的所有代码都可以在这里找到:https://github.com/TwilioDevEd/account-security-quickstart-django

如果这有帮助,请告诉我。

© www.soinside.com 2019 - 2024. All rights reserved.