如何使用新版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功能
- 登录用户账号,进入MFA管理页面
- 选择「添加TOTP设备」,用谷歌验证器/微软验证器扫描页面二维码,输入生成的验证码完成绑定
- 退出登录后重新登录,会出现MFA验证码输入框,验证通过后方可进入系统
- 生成并妥善保存备份码,当TOTP设备无法使用时,可通过备份码登录
关键注意事项
- 务必使用HTTPS部署项目,MFA涉及敏感验证信息,HTTP环境存在安全风险
- 若需自定义MFA逻辑(比如添加短信验证),可继承
allauth.mfa中的视图类进行扩展 - 用户若丢失备份码和TOTP设备,管理员可通过后台重置该用户的MFA设置
内容的提问来源于stack exchange,提问作者beginnercoder
相关产品推荐
相关产品推荐

