- Add EvotorConnection model to store user's Evotor access tokens - Implement OAuth 2.0 flow: /evotor (view), /evotor/connect, /evotor/callback, /evotor/disconnect - Add Evotor connection page with connected/disconnected states - Implement phone input masking (+7 (XXX) XXX-XX-XX) using Inputmask - Add Russian validation messages for form fields - Update phone validator to match masked format - Add httpx dependency for async OAuth token exchange - Add Evotor settings to config: CLIENT_ID, CLIENT_SECRET, SCOPES Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
13 lines
233 B
Plaintext
13 lines
233 B
Plaintext
fastapi==0.115.0
|
|
uvicorn[standard]==0.30.0
|
|
sqlalchemy==2.0.35
|
|
pymysql==1.1.1
|
|
cryptography>=41.0.0
|
|
jinja2==3.1.4
|
|
python-multipart==0.0.12
|
|
passlib[bcrypt]==1.7.4
|
|
bcrypt==4.2.0
|
|
pydantic-settings==2.5.2
|
|
itsdangerous==2.1.2
|
|
httpx==0.27.2
|