1.6 KiB
1.6 KiB
External Authentication
RanaZe supports provider-neutral external identities. Users can sign in with a configured provider or connect it from Profile. Every account remains password-backed, and an external identity is never linked automatically by matching email addresses.
Google setup
Create separate Google OAuth 2.0 Web application clients for UAT and production. Configure these exact authorized redirect URIs:
- UAT:
https://us3q.ranaze.com/api/Auth/external/google/callback - Production:
https://s3q.ranaze.com/api/Auth/external/google/callback
Add the credentials as Gitea repository secrets:
UAT_GOOGLE_CLIENT_IDUAT_GOOGLE_CLIENT_SECRETPRD_GOOGLE_CLIENT_IDPRD_GOOGLE_CLIENT_SECRET
The deployment scripts treat Google as optional. If either credential is absent, Google is omitted from the API provider list and the client does not display its button.
Account-linking rules
- A provider subject can belong to only one RanaZe user.
- A RanaZe user can connect at most one identity per provider.
- A verified Google email that already exists requires the user to choose Link an existing RanaZe account and enter that account's password.
- Connected providers are intentionally not removable in the current UI to prevent accidental lockout and identity takeover edge cases.
- Legacy
Users.SteamIdvalues are backfilled intoExternalIdentities; new Steam links are dual-written during the compatibility period.
Collections
ExternalIdentitiesstores durable provider-to-user mappings.ExternalAuthTransactionsstores short-lived login/link state and has a TTL index.
Deleting a user purges both collections for that user.