feat: Implement OAuth2 authentication with Google and GitHub

- Added OAuth2 endpoints for Google and GitHub authentication.
- Created OAuth service to handle provider interactions and user info retrieval.
- Implemented user OAuth repository for managing user OAuth links in the database.
- Updated auth service to support linking existing users and creating new users via OAuth.
- Added CORS middleware to allow frontend access.
- Created tests for OAuth endpoints and service functionality.
- Introduced environment configuration for OAuth client IDs and secrets.
- Added logging for OAuth operations and error handling.
This commit is contained in:
JSC
2025-07-26 14:38:13 +02:00
parent 52ebc59293
commit 51423779a8
14 changed files with 1119 additions and 37 deletions

View File

@@ -9,6 +9,7 @@ dependencies = [
"bcrypt==4.3.0",
"email-validator==2.2.0",
"fastapi[standard]==0.116.1",
"httpx==0.28.1",
"pydantic-settings==2.10.1",
"pyjwt==2.10.1",
"sqlmodel==0.0.24",
@@ -36,7 +37,7 @@ exclude = ["alembic"]
[tool.ruff.lint]
select = ["ALL"]
ignore = ["D100", "D103"]
ignore = ["D100", "D103", "TRY301"]
[tool.ruff.per-file-ignores]
"tests/**/*.py" = ["S101", "S105"]