Fix issue with new users
This commit is contained in:
@@ -93,6 +93,7 @@ public class LoginWithGoogleHandler(
|
||||
if (user is null)
|
||||
{
|
||||
var generatedPassword = PasswordGenerator.Next();
|
||||
var refreshToken = RefreshTokenGenerator.Next();
|
||||
var generatedUser = new IdentityUser
|
||||
{
|
||||
UserName = userInfo.Email,
|
||||
@@ -102,6 +103,8 @@ public class LoginWithGoogleHandler(
|
||||
Alias = userInfo.Name,
|
||||
PortraitUrl = userInfo.Picture,
|
||||
GoogleId = userInfo.Id,
|
||||
RefreshToken = refreshToken,
|
||||
RefreshTokenExpiryTime = DateTime.UtcNow.Add(jwtOptions.Value.RefreshTokenLifetime)
|
||||
};
|
||||
|
||||
var result = await userManager.CreateAsync(
|
||||
@@ -122,13 +125,14 @@ public class LoginWithGoogleHandler(
|
||||
|
||||
await signInManager.SignInAsync(user, isPersistent: false);
|
||||
|
||||
// Generate refresh token
|
||||
// Generate refresh token for existing users
|
||||
if (user.RefreshToken == null)
|
||||
{
|
||||
var refreshToken = RefreshTokenGenerator.Next();
|
||||
|
||||
// Store refresh token in user's properties
|
||||
user.RefreshToken = refreshToken;
|
||||
user.RefreshTokenExpiryTime = DateTime.UtcNow.Add(jwtOptions.Value.RefreshTokenLifetime);
|
||||
await userManager.UpdateAsync(user);
|
||||
}
|
||||
|
||||
var accessToken = JwtTokenHelper.GenerateJwtToken(
|
||||
expiresIn: jwtOptions.Value.Lifetime,
|
||||
@@ -143,7 +147,7 @@ public class LoginWithGoogleHandler(
|
||||
portraitUrl: user.PortraitUrl);
|
||||
|
||||
await SendOkAsync(
|
||||
new LoginWithGoogleResponse(accessToken, refreshToken),
|
||||
new LoginWithGoogleResponse(accessToken, user.RefreshToken),
|
||||
cancellation: ct);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user