- git 初始化 + .gitignore 补全(根 .env / logs / instance / __pycache__ 等) - 修复 utils/.gitignore 误将整个 utils/ 源码层忽略的问题,补入全部工具源码(含 ip2region.xdb) - 含后端全部代码:application / extensions / utils / config / migrations - 含前端 ui/(后续整体迁走) - 不含根 .env(含密钥,本地保留) Co-Authored-By: Claude <noreply@anthropic.com>
55 lines
2.0 KiB
Python
55 lines
2.0 KiB
Python
"""
|
||
验证码配置模块
|
||
=============================================================
|
||
|
||
从环境变量读取验证码相关配置,支持字符集、长度、过期时间、防刷机制等自定义。
|
||
所有配置项均可在 .env 文件中调整,无需修改代码。
|
||
|
||
依赖:config/__init__.py 中的 _load_env_file() 已提前加载 .env
|
||
"""
|
||
|
||
import os
|
||
|
||
# ============================================================
|
||
# 验证码基础配置
|
||
# ============================================================
|
||
|
||
# 验证码字符长度(4-6位,推荐4位)
|
||
# 4位:输入便捷,适合普通场景
|
||
# 6位:安全性较高,适合敏感操作
|
||
CAPTCHA_LENGTH = int(os.getenv('CAPTCHA_LENGTH', 4))
|
||
|
||
# 验证码过期时间(秒),默认5分钟
|
||
# 过期后验证码自动失效,需重新获取
|
||
CAPTCHA_EXPIRE = int(os.getenv('CAPTCHA_EXPIRE', 300))
|
||
|
||
# 验证码防刷窗口期(秒),默认60秒
|
||
# 在此时间窗口内,同一IP获取验证码次数受 CAPTCHA_RATE_LIMIT 限制
|
||
CAPTCHA_RATE_WINDOW = int(os.getenv('CAPTCHA_RATE_WINDOW', 60))
|
||
|
||
# 验证码防刷上限(窗口期内最大获取次数),默认10次
|
||
# 超过此次数后需等待窗口期结束才能再次获取
|
||
CAPTCHA_RATE_LIMIT = int(os.getenv('CAPTCHA_RATE_LIMIT', 10))
|
||
|
||
# 验证码字符集(去除易混淆字符:0/O/1/I/l/5/S/2/Z)
|
||
# 仅保留清晰易辨的字母和数字,提高用户输入正确率
|
||
CAPTCHA_CHARS = os.getenv('CAPTCHA_CHARS', 'ABCDEFGHJKLMNPQRSTUVWXYZ2346789')
|
||
|
||
# 验证码字体路径(相对于项目根目录)
|
||
CAPTCHA_FONT_PATH = os.getenv('CAPTCHA_FONT_PATH', 'static/fonts/Vera.ttf')
|
||
|
||
# 验证码图片宽度(像素)
|
||
CAPTCHA_IMAGE_WIDTH = int(os.getenv('CAPTCHA_IMAGE_WIDTH', 160))
|
||
|
||
# 验证码图片高度(像素)
|
||
CAPTCHA_IMAGE_HEIGHT = int(os.getenv('CAPTCHA_IMAGE_HEIGHT', 50))
|
||
|
||
# 验证码字体大小(像素)
|
||
CAPTCHA_FONT_SIZE = int(os.getenv('CAPTCHA_FONT_SIZE', 28))
|
||
|
||
# 干扰线数量
|
||
CAPTCHA_NOISE_LINES = int(os.getenv('CAPTCHA_NOISE_LINES', 6))
|
||
|
||
# 噪点数量
|
||
CAPTCHA_NOISE_DOTS = int(os.getenv('CAPTCHA_NOISE_DOTS', 30))
|