Skip to content

Add Google, GitHub and Apple login support - #136

Merged
dborovcanin merged 1 commit into
absmach:mainfrom
dborovcanin:social-login
Oct 12, 2026
Merged

dborovcanin merged 1 commit into
absmach:mainfrom
dborovcanin:social-login

Conversation

@dborovcanin

@dborovcanin dborovcanin commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor

Extend the existing social authentication flow with GitHub OAuth/PKCE and verified primary email lookup, and Apple form POST callbacks with a 303 frontend redirect. Apple's ID token verifier accepts boolean/string email verification while checking RS256 signatures, issuer, audience, expiry and nonce. Google continues to use the existing OIDC verification flow.

Add optional named client credentials for Google, GitHub and Apple. Carry an optional browser binding through provider state and single-use exchange codes, and return the verified provider email with the ordinary login fields. Existing clients that omit the binding at both ends remain compatible. Include matching PostgreSQL/SQLite migrations and setup documentation. This supplies the backend contract for the companion Atomic PR.

Validation: 417 unit tests pass (38 existing DB/external tests ignored by the default run); all 8 focused identity tests pass on fresh PostgreSQL and SQLite databases. Required cargo clippy -- -D warnings, formatting and database/storage boundary checks pass. The optional --all-targets Clippy run finds pre-existing warnings in src/cache/mod.rs, src/models/enums.rs and tests/m50_entity_mutation_authorization.rs, which are outside this change. Local signed provider mocks cover invalid signature, nonce, audience, expiry and unverified email. Real provider credentials remain unset; complete a real browser signup/login per provider before production enablement.

Companion Builder PR: https://github.com/absmach/atomic/pull/234

@dborovcanin
dborovcanin merged commit 775a326 into absmach:main Oct 12, 2026
2 of 6 checks passed
@dborovcanin
dborovcanin deleted the social-login branch October 12, 2026 17:46
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