【问题标题】:How To Configure Django Authy For Two Factor Authentication如何为两因素身份验证配置 Django Authy
【发布时间】:2019-03-15 16:31:08
【问题描述】:

过去几天我一直在研究 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 位 pin 示例?提前感谢您的任何想法。

【问题讨论】:

    标签: django django-rest-framework twilio twilio-api twilio-functions


    【解决方案1】:

    这里是 Twilio 开发者宣传员。

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

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

    让我知道这是否有帮助。

    【讨论】:

      猜你喜欢
      • 2019-07-21
      • 2019-07-21
      • 2016-09-09
      • 2016-02-24
      • 1970-01-01
      • 1970-01-01
      • 2021-04-08
      • 2021-06-26
      • 2016-01-18
      相关资源
      最近更新 更多