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