Make refresh token also be a JWT as requested
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user