From e38810f1445ba8537c3ff6768097537009bb27c8 Mon Sep 17 00:00:00 2001 From: duykasama Date: Thu, 22 Feb 2024 10:29:43 +0700 Subject: [PATCH] [Hotfix][Duy] Return users' roles when loggin in via google --- .../Implementations/GoogleOAuthService.cs | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/Domus.Service/Implementations/GoogleOAuthService.cs b/Domus.Service/Implementations/GoogleOAuthService.cs index a6c4c41..66c3106 100644 --- a/Domus.Service/Implementations/GoogleOAuthService.cs +++ b/Domus.Service/Implementations/GoogleOAuthService.cs @@ -69,15 +69,20 @@ public async Task LoginAsync(OAuthRequest request) securityToken.Claims.TryGetValue(GoogleTokenClaimConstants.PICTURE, out var picture); var user = await _userManager.FindByEmailAsync(email) ?? await CreateNewUserAsync(email, emailVerified, name, picture); - - var tokenResponse = new TokenResponse + var roles = _userManager.GetRolesAsync(user).Result.ToList(); + var authResponse = new AuthResponse { - AccessToken = _jwtService.GenerateAccessToken(user, _userManager.GetRolesAsync(user).Result.ToList()), - RefreshToken = await _jwtService.GenerateRefreshToken(user.Id), - ExpiresAt = DateTimeOffset.Now.AddHours(1) + Username = user.UserName ?? user.Email ?? string.Empty, + Roles = roles, + Token = new TokenResponse + { + AccessToken = _jwtService.GenerateAccessToken(user, roles), + RefreshToken = await _jwtService.GenerateRefreshToken(user.Id), + ExpiresAt = DateTimeOffset.Now.AddHours(1) + } }; - return new ServiceActionResult(true) { Data = tokenResponse }; + return new ServiceActionResult(true) { Data = authResponse }; } private async Task CreateNewUserAsync(string email, string emailVerified, string fullName, string picture)