Sign in with NAVCOM
Let players log in with their RSI identity
Sign in with NAVCOM is login for Star Citizen community apps: a verified RSI handle,
not a phone, not a bulk copy of every citizen. Standard login. Five minutes.
Sandbox: https://id-dev.navcom.ai.
This page: https://navcom.ai/developers.
Reading this page does not require an account. Log in only to create a client_id.
Five minutes
Layman path. Protocol details are below.
- Read this page. No account needed.
- Log in and create an app to mint a
client_id. Applications are public and approved on submit. - Add a redirect URI (
https://, orhttp://127.0.0.1/localhostfor local work). - Send the player to NAVCOM. They come back with a one-time code. You trade that code for tokens and call
/oauth/v1/me. - Show their RSI handle. Optional avatar helper:
/oauth/v1/citizens/{handle}/avatar.
Button pack (SVG + HTML, no tracking): SVG · HTML.
Public client libraries (clone these; login is only to mint a client_id):
-
Python PKCE:
github.com/Wild-Knight-Squadron/navcom-oidc-python
— clone
https://github.com/Wild-Knight-Squadron/navcom-oidc-python.git -
Passport:
github.com/Wild-Knight-Squadron/passport-navcom
— clone
https://github.com/Wild-Knight-Squadron/passport-navcom.git - Next / Electron notes (in-tree sample): /developers/samples/
Sandbox issuer: https://id-dev.navcom.ai (throwaway accounts only). The NAVCOM-ID Family portfolio.
For implementers
PKCE S256, scopes, discovery, OpenAPI.
- Authorization Code + PKCE S256 only (never plain). Default scopes:
openid profile rsi.profile. - There is no
client_credentialshelper. Do not add one. - Discovery: /.well-known/openid-configuration
- Integrator OpenAPI: /oauth/openapi.json
- JWKS: /oauth/jwks.json
- Userinfo:
GET /oauth/userinfo(bearer). Profile:GET /oauth/v1/me—sub+ scoped claims. - Orgs:
GET /oauth/v1/me/orgs(bearer). Revoke:POST /oauth/revoke(RFC 7009). Introspect:POST /oauth/introspect(RFC 7662, confidential clients only). - RP token revoke:
POST /oauth/v1/apps/{client_id}/tokens/{token_id}/revoke(client secret). - Refresh tokens rotate: store the new
refresh_token; the previous one is dead. - Token auth methods:
client_secret_post,client_secret_basic,private_key_jwt,none(public PKCE). - Scopes:
openid(sub),profile(display name),rsi.profile/rsi(handle),orgs.primary(main org),orgs.public/orgs(public orgs),rsi:enlisted(enlisted date),email(verified email),discord(snowflake; discover toggle for reverse lookup). - Avatar redirect:
GET /oauth/v1/citizens/{handle}/avatar— public, no token, rate limited. - Samples: /developers/samples/. Protocol notes also live on /docs#sign-in-with.
SENTRY-Web is the first live relying party. This page does not invent third-party RPs.
Create a client_id
Strangers can read the whole guide. Login is only to mint an app.