Module هویت و دسترسی
Module identity مالک احراز هویت با شماره موبایل ایران است. نخستین Use Case تحویلشده ساخت OTP Challenge است؛ Verification، Session، Refresh Token Rotation و Logout هنوز پیادهسازی نشدهاند و نباید در Client بهعنوان قابلیت موجود مصرف شوند.
دامنه
داخل دامنه
- Normalization و اعتبارسنجی شماره موبایل ایران؛
- ساخت، تحویل، تایید و مصرف OTP Challenge؛
- Account Bootstrap پس از نخستین Verification موفق؛
- Session، Access Token، Refresh Token چرخشی و Logout؛
- کنترل سوءاستفاده، Audit و عدم افشای وجود Account.
خارج از دامنه فعلی
- Membership و Role در Building؛
- Profile کامل کاربر؛
- Password، Social Login و Chat؛
- SMS Provider عملیاتی تا آمادهشدن پنل ملیپیامک.
وضعیت Use Caseها
| Use Case | وضعیت | قرارداد |
|---|---|---|
| درخواست OTP Challenge | پیادهسازیشده | POST /api/v1/auth/otp/challenges |
| تحویل OTP در Development | پیادهسازیشده | Structured Log محدود به Development/Test |
| تایید OTP | پیادهسازینشده | طراحی بعدی |
| ایجاد Account ناشناخته | پیادهسازینشده | همزمان با Verification |
| Session و Token | پیادهسازینشده | طراحی بعدی |
| Logout و Revocation | پیادهسازینشده | طراحی بعدی |
| ملیپیامک | پیادهسازینشده | Adapter و Outbox آینده |
Invariantهای اصلی
- پاسخ عمومی نباید وجود یا نبود Account برای Mobile را افشا کند.
- OTP ششرقمی با
crypto/randساخته میشود و Plaintext آن در Database ذخیره نمیشود. - هر Mobile حداکثر یک Challenge فعال معتبر دارد.
- درخواست تکراری با همان Idempotency Key و Payload پاسخ قبلی را بازپخش میکند.
- استفاده همان Key برای Intent متفاوت با
409رد میشود. - تمام پاسخهای Identity دارای
Cache-Control: no-storeهستند.
صفحات این Module
- Domain و جریان درخواست OTP
- قرارداد API درخواست OTP
- داده و Migration
- امنیت و کنترل سوءاستفاده
- تحویل OTP و عملیات Development