feat(auth): add OAuth login for GitHub, Google, GitLab #30
No reviewers
Labels
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
track:api
track:auto
track:core
track:deploy
track:infra
track:ui
v0.1.0
v0.1.1
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
barrettruth/delta!30
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/oauth-login"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
Auth is username/password only. Friends who want to use delta need manually-created credentials. Closes #28.
Solution
Add OAuth 2.0 authorization code flow for GitHub, Google, and GitLab — no external libraries. Each provider is configured via
OAUTH_{PROVIDER}_CLIENT_IDandOAUTH_{PROVIDER}_CLIENT_SECRETenv vars; unconfigured providers are hidden from the login page.New
accountstable links provider identities to users.passwordHashis now nullable so OAuth-only users can exist. CSRF protection via random state cookie. Username deduplication on first OAuth login. Settings page lets users link/unlink providers (with guard against removing the last auth method). 11 new tests (209 total).