fdf4235fbd
- OtpService: generates a 5-digit code, stores it (in-memory, 120s TTL, max 5 tries, single-use), and sends it via Kavenegar verify/lookup (template "hokmotp", %token = code). Normalizes +98/98 → 09xxxxxxxxx. - /api/auth/otp/request + /verify now use it. No SMS_API_KEY ⇒ dev mode (accepts a fixed code, returns devCode for local testing). - Config: Sms section (appsettings) + Sms__* compose mapping + SMS_* in the ENV_FILE template. Security: sanitized deploy/ENV_FILE.example back to placeholders (it had picked up real secrets) and added /deploy/ENV_FILE.local to .gitignore as the real master copy (never committed). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
72 lines
1015 B
Plaintext
72 lines
1015 B
Plaintext
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
|
|
|
|
# local secrets master copy (real ENV_FILE values — NEVER commit)
|
|
/deploy/ENV_FILE.local
|
|
*.env.local
|
|
|
|
# dependencies
|
|
/node_modules
|
|
/.pnp
|
|
.pnp.*
|
|
.yarn/*
|
|
!.yarn/patches
|
|
!.yarn/plugins
|
|
!.yarn/releases
|
|
!.yarn/versions
|
|
|
|
# testing
|
|
/coverage
|
|
|
|
# next.js
|
|
/.next/
|
|
/out/
|
|
|
|
# capacitor copied web assets + machine-specific android files
|
|
/android/app/src/main/assets/public
|
|
/android/local.properties
|
|
/android/gradle-mirror.init.gradle
|
|
|
|
# production
|
|
/build
|
|
|
|
# built mobile artifacts (APK/AAB) + release signing secrets
|
|
/dist
|
|
/android/keystore.properties
|
|
*.jks
|
|
*.keystore
|
|
|
|
# misc
|
|
.DS_Store
|
|
*.pem
|
|
|
|
# debug
|
|
npm-debug.log*
|
|
yarn-debug.log*
|
|
yarn-error.log*
|
|
.pnpm-debug.log*
|
|
|
|
# env files (can opt-in for committing if needed)
|
|
.env*
|
|
!.env.example
|
|
|
|
# vercel
|
|
.vercel
|
|
|
|
# typescript
|
|
*.tsbuildinfo
|
|
next-env.d.ts
|
|
|
|
# .NET (server/)
|
|
[Bb]in/
|
|
[Oo]bj/
|
|
*.user
|
|
*.db
|
|
*.db-shm
|
|
*.db-wal
|
|
|
|
|
|
# store screenshot artifacts
|
|
/scripts/shots/
|
|
/store-assets/
|
|
/scripts/promo/
|