Processing...

JWT Refresh Token – Complete Implementation

🔓 Open JWT Decoder Tool

Try Simple Jwt Refresh Token instantly – 100% client‑side, no data leaves your browser.

Refresh tokens allow clients to obtain new access tokens without re‑authenticating.

How refresh token flow works

  1. User logs in → server returns access token (short‑lived) + refresh token (long‑lived).
  2. Access token expires → client sends refresh token to /refresh endpoint.
  3. Server validates refresh token, issues new access token.
  4. Refresh token can be rotated (old one invalidated after use).

C# example

// Generate refresh token (GUID)
var refreshToken = Convert.ToBase64String(Guid.NewGuid().ToByteArray());

// Store in database (hashed) with user ID and expiration

// Endpoint to refresh
[HttpPost("refresh")]
public IActionResult Refresh(string refreshToken)
{
    var storedToken = _db.RefreshTokens.FirstOrDefault(rt => rt.Token == refreshToken);
    if (storedToken == null || storedToken.Expires < DateTime.UtcNow)
        return Unauthorized();

    var newAccessToken = GenerateJwtToken(storedToken.UserId);
    return Ok(new { accessToken = newAccessToken });
}

Frequently Asked Questions

Should refresh tokens be stored?

Yes – in an HTTP‑only cookie or secure database.