Make refresh token also be a JWT as requested

This commit is contained in:
2025-11-06 20:30:50 +02:00
parent b22cc00647
commit 7e7231b514

View File

@@ -37,6 +37,14 @@ public class TokenService(ImgBoardContext context, IConfiguration config, UserMa
}
public async Task<string> GenerateJwtToken(User user)
{
return await GenerateJwtToken(
user,
DateTime.Now.AddMinutes(Convert.ToDouble(config["Jwt:DurationInMinutes"]))
);
}
private async Task<string> GenerateJwtToken(User user, DateTime dateExpire)
{
var roles = await userManager.GetRolesAsync(user);
var claims = new List<Claim>
@@ -54,7 +62,7 @@ public class TokenService(ImgBoardContext context, IConfiguration config, UserMa
issuer: config["Jwt:Issuer"],
audience: config["Jwt:Audience"],
claims: claims,
expires: DateTime.Now.AddMinutes(Convert.ToDouble(config["Jwt:DurationInMinutes"])),
expires: dateExpire,
signingCredentials: creds);
return new JwtSecurityTokenHandler().WriteToken(token);
@@ -62,10 +70,12 @@ public class TokenService(ImgBoardContext context, IConfiguration config, UserMa
public async Task<string> GenerateRefreshToken(User user)
{
var dateExpire = DateTime.Now.AddDays(30);
var jwtToken = await GenerateJwtToken(user, dateExpire);
var token = new RefreshToken
{
Expires = DateTime.Now.AddDays(30),
Token = Guid.NewGuid().ToString(),
Expires = dateExpire,
Token = jwtToken,
User = user
};
await context.RefreshTokens.AddAsync(token);