- auth-service: add SmsService (Aliyun SMS) + RedisProvider for OTP storage - POST /api/v1/auth/sms/send — send OTP (rate limited 1/min per phone) - POST /api/v1/auth/sms/verify — verify OTP only - POST /api/v1/auth/login/otp — passwordless login with phone + OTP - register endpoint now requires smsCode when registering with phone - Web Admin register page: add OTP input + 60s countdown button for phone mode - Flutter login page: add 验证码登录 tab with phone + OTP flow - SMS enabled via ALIYUN_ACCESS_KEY_ID/SECRET + SMS_ENABLED=true env vars - Falls back to mock mode (logs code) when env vars not set Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| core | ||
| features | ||
| app.dart | ||
| main.dart | ||