fluxer_oidc_broker/.
Flow
- Publishes
/.well-known/openid-configurationandjwks.json - Accepts Fluxer’s authorization-code + PKCE flow
- Shows a provider picker for Discord and GitHub
- Exchanges the upstream OAuth code and fetches verified email claims
- Returns OIDC
access_token,id_token, anduserinfo - Stores short-lived broker state and single-use auth codes in Workers KV
Requirements
The broker expects:- one KV namespace bound as
OIDC_BROKER_KV - one downstream OIDC client for Fluxer itself
- one RSA signing key in JWK form
- one Discord OAuth app
- one GitHub OAuth app
Worker variables
Fluxer client
OIDC_ISSUEROIDC_CLIENT_IDOIDC_CLIENT_SECRETOIDC_ALLOWED_REDIRECT_URISOIDC_PRIVATE_JWK
Branding and policy
OIDC_BRAND_NAMEOIDC_ALLOWED_EMAIL_DOMAINSOIDC_DEFAULT_PROVIDER
Discord
DISCORD_CLIENT_IDDISCORD_CLIENT_SECRET
GitHub
GITHUB_CLIENT_IDGITHUB_CLIENT_SECRET
Upstream callback URLs
Register these callback URLs in the Discord and GitHub OAuth apps:- Discord:
https://YOUR_ISSUER/callback/discord - GitHub:
https://YOUR_ISSUER/callback/github
Fluxer SSO settings
Point Fluxer’s SSO config at the broker issuer:- Issuer:
https://YOUR_ISSUER - Client ID:
OIDC_CLIENT_ID - Client Secret:
OIDC_CLIENT_SECRET - Scope:
openid email profile - Redirect URI:
https://YOUR_FLUXER_HOST/auth/sso/callback
Generate the signing key
Fromfluxer_oidc_broker/:
OIDC_PRIVATE_JWK.
Create the KV namespace
fluxer_oidc_broker/wrangler.toml.