You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用新版Django Allauth MFA?求详细实现步骤

Django Allauth MFA 实现步骤

1. 升级依赖并配置APP

  • 确保使用0.54.0及以上版本的django-allauth(MFA功能是该版本后推出的),执行升级命令:
    pip install --upgrade django-allauth
    
  • 在settings.py的INSTALLED_APPS中加入MFA模块:
    INSTALLED_APPS = [
        # 你的其他项目APP
        'allauth',
        'allauth.account',
        'allauth.socialaccount',
        'allauth.mfa',  # 新增这一行
    ]
    
  • 确认AUTHENTICATION_BACKENDS包含allauth认证后端(默认已配置,未添加则补上):
    AUTHENTICATION_BACKENDS = [
        'django.contrib.auth.backends.ModelBackend',
        'allauth.account.auth_backends.AuthenticationBackend',
    ]
    
  • 可选配置(按需添加):
    # 是否强制所有用户启用MFA,默认False
    ACCOUNT_MFA_REQUIRED = False
    # 支持的MFA方式:TOTP(谷歌验证器类工具)、备份码
    ACCOUNT_MFA_SUPPORTED_METHODS = ['totp', 'backup_codes']
    

2. 执行数据库迁移

MFA需要新增对应的数据表,运行迁移命令:

python manage.py migrate

3. 配置URL路由

在项目根urls.py中添加MFA的路由规则:

from django.urls import path, include

urlpatterns = [
    # 你的其他路由
    path('accounts/', include('allauth.urls')),
    path('accounts/mfa/', include('allauth.mfa.urls')),  # 新增MFA路由
]

4. 模板与前端(可选)

  • 使用默认模板的话,用户登录后在账户设置页面就能找到MFA管理入口,无需额外修改
  • 使用自定义模板的话,在账户相关页面添加跳转链接即可:
    <a href="{% url 'mfa_index' %}">管理多因素认证</a>
    

5. 测试MFA功能

  1. 登录用户账号,进入MFA管理页面
  2. 选择「添加TOTP设备」,用谷歌验证器/微软验证器扫描页面二维码,输入生成的验证码完成绑定
  3. 退出登录后重新登录,会出现MFA验证码输入框,验证通过后方可进入系统
  4. 生成并妥善保存备份码,当TOTP设备无法使用时,可通过备份码登录

关键注意事项

  • 务必使用HTTPS部署项目,MFA涉及敏感验证信息,HTTP环境存在安全风险
  • 若需自定义MFA逻辑(比如添加短信验证),可继承allauth.mfa中的视图类进行扩展
  • 用户若丢失备份码和TOTP设备,管理员可通过后台重置该用户的MFA设置

内容的提问来源于stack exchange,提问作者beginnercoder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 02:20:19