Skip to content

feat(oidc): Google/Discord OIDC reference plugins with One Tap login and hostconfig-based settings#15

Open
osindex wants to merge 4 commits into
linaproai:mainfrom
osindex:feat/oidc-reference-plugins
Open

feat(oidc): Google/Discord OIDC reference plugins with One Tap login and hostconfig-based settings#15
osindex wants to merge 4 commits into
linaproai:mainfrom
osindex:feat/oidc-reference-plugins

Conversation

@osindex

@osindex osindex commented Jul 9, 2026

Copy link
Copy Markdown

Summary

  • Add Google One Tap login to linapro-oidc-google: new POST /portal/linapro-oidc-google/onetap route with GSI double-submit CSRF check, JWKS-backed ID token verification (1h key cache), admin on/off switch (fail-closed), and SSO/SPA redirect semantics shared with the authorize-code callback.
  • Migrate plugin settings seeding for both linapro-oidc-google and linapro-oidc-discord from install SQL to hostconfig capability upsert (seed/uninstall SQL removed, rows created with IsBuiltin=0).
  • Localize new error codes (ONE_TAP_DISABLED, ONE_TAP_CSRF_MISMATCH) in zh-CN/en-US.

Branch also carries the two base commits introducing the Google and Discord OIDC reference plugins on the host external-login seam.

Tests

  • go build ./... and go vet ./... pass for both plugins.
  • Host-side: auth/user tests 7 passed, cmd binding tests 32 passed, auto-provision unit tests 3 passed.
  • One Tap endpoint probed live in both switch states (disabled -> fail-closed redirect; enabled + garbage credential -> JWT validation rejection).
  • make lint not run in this environment (local gofmt version mismatch).

osindex and others added 3 commits July 7, 2026 21:17
…rage and provider engine

- new source plugin linapro-oidc-core: user_external_identity table (partial unique index on provider+subject), externalidentityspi.Provider implementation (resolve, idempotent provisioning, email-conflict mapping, email-less deterministic username anchors, concurrent unique-conflict absorption), self-isolated bind/unbind/list API with i18n
- linapro-oidc-google / linapro-oidc-discord: declare dependency on linapro-oidc-core; README boundary corrections (linkage storage and provisioning policy now live in the core plugin)
- org-core / tenant-core test fakes: add usercap.Service ProvisionExternal conformance stubs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant