Create JWT renew request
Docker Build and Release Upload / build (push) Successful in 4m40s

This commit is contained in:
2025-07-24 22:30:07 -07:00
parent 5851cbfdfe
commit 80c13bd900
4 changed files with 51 additions and 11 deletions
@@ -4,6 +4,10 @@ using Auth.Services.DatabaseService;
using Auth.Entities;
using Auth.DTO;
using System.Web.Http;
using System.IdentityModel.Tokens.Jwt;
using Microsoft.IdentityModel.Tokens;
using System.Text;
using System.Security.Claims;
namespace Auth.Controllers {
[ApiController]
@@ -71,7 +75,7 @@ namespace Auth.Controllers {
}
}
[Route("authenticate")]
[Route("jwtlogin")]
[HttpPost]
public async Task<ActionResult> Authenticate([FromBody] LoginRequest request) {
try {
@@ -107,6 +111,27 @@ namespace Auth.Controllers {
}
}
[Route("jwttryrenew")]
[HttpPost]
public IActionResult Refresh([FromBody] JWTRenewRequest request){
try {
JwtSecurityTokenHandler handler = new JwtSecurityTokenHandler();
ClaimsPrincipal claimsPrincipal = handler.ValidateToken(request.Token, AuthJWT.TokenParameters, out var validatedToken);
JwtSecurityToken jwt = (JwtSecurityToken)validatedToken;
if (jwt != null) {
if (jwt.ValidTo - DateTime.UtcNow < TimeSpan.FromDays(1)) {
var newJwt = AuthJWT.RenewJWTToken(claimsPrincipal);
return Ok(newJwt);
}
return BadRequest("Not ready to renew");
}
return BadRequest("Malformed Token");
}
catch (SecurityTokenException ex) {
return Unauthorized($"Token invalid: {ex.Message}");
}
}
[Route("logout")]
[HttpPost]
public ActionResult Logout() {