feat(auth): Implement Google OAuth 2.0 integration with user creation and JWT generation

- Added Google OAuth controller and service to handle authentication via Google.
- Introduced DTOs for Google user and token responses.
- Updated AuthService and UsersService traits to support new Google OAuth functionality.
- Implemented logic to create a new user if they do not exist in the system after Google authentication.
- Enhanced existing user retrieval and JWT generation upon successful login.
- Added tests for Google OAuth flow, including login redirection and callback handling for both new and existing users.
- Updated environment configuration to include Google OAuth credentials.
This commit is contained in:
MythEclipse
2025-08-11 22:31:51 +07:00
parent c6a95c1231
commit cda950ed7e
22 changed files with 1144 additions and 104 deletions
+5
View File
@@ -6,10 +6,13 @@ edition = "2024"
[dependencies]
imphnen-libs.workspace = true
imphnen-utils.workspace = true
async-trait = "0.1"
imphnen-entities.workspace = true
axum.workspace = true
serde.workspace = true
serde_json.workspace = true
oauth2 = "4.4.2"
reqwest = { version = "0.11", features = ["json"] }
utoipa.workspace = true
lazy_static.workspace = true
regex.workspace = true
@@ -31,4 +34,6 @@ uuid.workspace = true
[dev-dependencies]
dotenvy.workspace = true
tokio-test = "0.4.2"
mockall = "0.12.1"
http-body-util.workspace = true