diff --git a/app/api/endpoints/mfa.py b/app/api/endpoints/mfa.py index dbef09d1..0b4590cc 100644 --- a/app/api/endpoints/mfa.py +++ b/app/api/endpoints/mfa.py @@ -161,9 +161,9 @@ async def otp_disable( current_user: User = Depends(get_current_active_user_async) ) -> Any: """关闭当前用户的 OTP 验证功能""" - # 安全检查:如果存在 PassKey,不允许关闭 OTP + # 安全检查:如果存在 PassKey,默认不允许关闭 OTP,除非配置允许 has_passkey = await _check_user_has_passkey(db, current_user.id) - if has_passkey: + if has_passkey and not settings.PASSKEY_ALLOW_REGISTER_WITHOUT_OTP: return schemas.Response( success=False, message="您已注册通行密钥,为了防止域名配置变更导致无法登录,请先删除所有通行密钥再关闭 OTP 验证"