Project

General

Profile

Actions

Sub-Task #256

open

Epic #3: Implement a secure user authentication system

Feature #160: User Login

User Story #176: As a user, I want to log in via OAuth/OIDC, so that I can use existing providers

Backend: OIDC endpoints (login start, callback, session)

Sub-Task #256: Backend: OIDC endpoints (login start, callback, session)

Added by Bricklou 26 days ago. Updated 20 days ago.

Status:
Done
Priority:
Normal
Assigned To:
Target version:
Start date:
09/01/2026
Due date:
% Done:

100%

Estimated time:

Description

Implements the actual OIDC auth flow endpoints:

  • Login start: builds the authorize URL for a given provider id and redirects the user.
  • Callback: handles the provider's redirect, exchanges the code, validates the token, creates/links the local user account, and creates a server-side session.

Related issues 2 (2 open — 0 closed)

Blocked by Server - Sub-Task #254: Backend: OIDC provider configurationDoneBricklou08/30/2026

Actions
Blocks Server - Sub-Task #257: Frontend: OIDC login integrationDoneBricklou09/01/2026

Actions

Updated by Bricklou 26 days ago Author Actions #1

  • Description updated (diff)
  • Status changed from Draft to To Do

Updated by Bricklou 26 days ago Author Actions #2

  • Status changed from To Do to Planned
  • Assigned To set to Bricklou
  • Target version set to Server 0.1.0
  • Start date deleted (08/30/2026)

Updated by Bricklou 25 days ago Author Actions #3

Naming for the account-linking table this ticket will need (users_id/provider_id/provider_user_id from the original ask): oidc_identities(id, user_id FK users, provider_key TEXT, subject TEXT, created_at, UNIQUE(provider_key, subject)).

  • provider_key matches the YAML map key / ProviderKey value object from #254 — not a DB foreign key, since providers aren't rows anywhere, they're config.
  • subject matches the OIDC spec term for the IdP-side stable user identifier (the sub claim), clearer than provider_user_id.

#254 hands this ticket an Arc<dyn OidcProviderRegistry> (Domain port, libs/server/domain/src/oidc/ports/oidc_provider_registry.rs) to look up the discovered client per ProviderKey — extend its OidcClient marker trait with whatever authorize-URL/token-exchange methods this ticket's flow needs (PKCE, state, nonce handling).

Updated by Bricklou 25 days ago Author Actions #4

  • Blocked by Sub-Task #254: Backend: OIDC provider configuration added

Updated by Bricklou 25 days ago Author Actions #5

Updated by Bricklou 21 days ago Author Actions #6

  • Status changed from Planned to In Progress
  • Start date set to 09/04/2026

Updated by Bricklou 21 days ago Author Actions #7

  • Start date changed from 09/04/2026 to 09/01/2026

Updated by Bricklou 21 days ago Author Actions #8

  • Status changed from In Progress to In Review
  • % Done changed from 0 to 100

Updated by Bricklou 20 days ago Author Actions #9

  • Status changed from In Review to Done
Actions

Also available in: PDF Atom