Task Summary
Separate user profiles from authentication mechanisms by creating a dedicated auth_provider table that unifies local login and third-party OAuth under a single interface. This opens the door to adding new authentication services in the future such as Github, Facebook, and other such services.
Problem
Storing authentication data directly on the users table forces new schema changes every time we add a login provider (e.g., OAuth) and turns users into a bloated "god table."
Related Discussion
Discussion #6716
Key Benefits
Unified Interface: Local auth becomes just another provider (provider = 'local'), removing conditional code paths.
Security: Isolates sensitive credential data from standard user profile queries (SELECT * FROM users).
Extensibility: Easily add new login providers without schema modifications on users.
Task Type
Task Summary
Separate user profiles from authentication mechanisms by creating a dedicated auth_provider table that unifies local login and third-party OAuth under a single interface. This opens the door to adding new authentication services in the future such as Github, Facebook, and other such services.
Problem
Storing authentication data directly on the users table forces new schema changes every time we add a login provider (e.g., OAuth) and turns users into a bloated "god table."
Related Discussion
Discussion #6716
Key Benefits
Unified Interface: Local auth becomes just another provider (provider = 'local'), removing conditional code paths.
Security: Isolates sensitive credential data from standard user profile queries (SELECT * FROM users).
Extensibility: Easily add new login providers without schema modifications on users.
Task Type