Signing In to SanadiqCloud
Product version: 1.0.0+1 Last updated: 2026-08-03 Audience: Tenant Owners, Tenant Employees, Regular Users
Creating a New Account
Email and password
- Open SanadiqCloud → Sign in (
/login). - Choose Create account / Register (
/signup). - Enter first name, last name, email, and password.
- Confirm that you agree to the Terms of Service and Privacy Policy, then submit. You are guided to email verification when required (
/verify-email).
- On sign-in, use Sign in with Google.
- Complete the Google account prompt (web uses the Google Identity button; mobile uses the Google Sign-In flow).
- The app exchanges the Google ID token with the auth API (
POST /api/auth/v1/login/google).
Apple Sign-In is not available.
Signing In
Email and password
- Enter email and password on
/login. - Tap Sign in.
- On success you enter the app for your account type (home / organization dashboard as applicable).
Same Google control on the sign-in page.
Special redirects
| Condition | Destination |
|---|---|
| Email verification required | /verify-email |
| Account deactivated | /account-reactivate |
| Subscription expired (gated) | Sign-in / renewal paths as shown in the app |
Organization / workspace
After auth, if you belong to an organization you enter that workspace. Switching organizations (when available) is from the avatar / shell menu — not a separate “devices” page.
Email Verification
- Open
/verify-email(forced when verification is required). - Enter the OTP from email.
- Tap Verify. Use Resend if needed (cooldown / rate limits apply).
- You can switch to a different account (sign out) from this page.
Without verification, protected app routes redirect back to verify.
Password Reset
- Sign-in → Forgot password? (
/forgot-password). - Enter email → send reset code.
- On
/reset-password: email, OTP, new password, confirm. - Success → return to sign-in. Server sessions for that user are cleared.
Account Reactivation
If sign-in reports a deactivated account, /account-reactivate lets you reactivate using the credentials already captured on the sign-in form (no separate password re-entry on that page). Success behaves like a normal login (tokens in response headers).
Accepting an Organization Invite
Invited users open /accept-invitation?token=…, set a password when required, then sign in. See Invites.
Tokens and Session Behavior
- Access and refresh tokens are returned in response headers (
X-Access-Token,X-Refresh-Token), not the JSON body. - The client stores them and sends
Authorization: Bearer …on API calls, plusX-Tenant-IDwhen a tenant is selected. Tenant is not inside the JWT. - On 401, the client attempts refresh; if refresh fails, the local session is cleared and you return to sign-in.
Active sessions UI
There is no in-app “list/revoke device sessions” screen. Sign out from the avatar menu ends the current client session. Changing or resetting your password invalidates all server sessions.
Troubleshooting
| Issue | What to try |
|---|---|
| Invalid credentials | Forgot password; check Caps Lock |
| Email not verified | Complete OTP on /verify-email; resend code |
| Account deactivated | Use /account-reactivate |
| Google fails | Retry; fall back to email/password; contact support |
| Invite link fails | Ask owner to Resend or send a new invite |
| Too many attempts | Wait for the rate-limit window, then retry |
Related: Overview | Create Organization | Profile | Invites