pyfackit 是一個輕量、框架無關的二階段驗證(2FA)函式庫。
適合整合到既有網站或後端 API,提供 Email OTP 驗證 功能。
本文件教你如何在自己的專案快速導入 pyfackit。
在你的後端專案中執行:
pip install pyfackit
pip install redis(如果從本地原始碼安裝)
pip install -e .REDIS_URL=redis://localhost:6379/0
SMTP_USER=your_email@gmail.com
SMTP_PASS=your_app_passwordSMTP 建議使用 Gmail 的 應用程式密碼。
Redis 可使用本機 / Docker / 雲端 Redis。
from pyfackit import Settings
settings = Settings(
code_length=6,
ttl_seconds=300,
max_attempts=5,
min_resend_interval=60,
lock_minutes=10
)import os
from dotenv import load_dotenv
from pyfackit import OtpService, EmailSmtpSender, Settings
from pyfackit.stores.redis_store import RedisStore
load_dotenv()
sender = EmailSmtpSender(
host="smtp.gmail.com",
port=587,
username=os.getenv("SMTP_USER"),
password=os.getenv("SMTP_PASS"),
use_tls=True,
)
store = RedisStore(url=os.getenv("REDIS_URL"))
settings = Settings()
otp_service = OtpService(sender, store, settings)otp_service.issue(
user_id=user.id,
channel="email",
destination=user.email
)otp_service.verify(
user_id=user.id,
channel="email",
code=code_from_user
)驗證成功後 → 建立 session / JWT / 登入。
- 使用者登入 → 密碼正確
- 後端呼叫:
otp_service.issue(user.id, "email", user.email) - 前端輸入驗證碼
- 後端驗證:
otp_service.verify(user.id, "email", code) - 驗證成功 → 正式登入
完成!