# Class JwtHelper

Namespace
  adas_core.Domain.Utils

Assembly
  adas-core.Domain.dll

Serves as an abstract base class for providing helper functionality related to JSON Web Token (JWT) operations.

    public abstract class JwtHelper

Inheritance
  object
  JwtHelper

Inherited Members
  object.Equals(object)
  object.Equals(object, object)
  object.GetHashCode()
  object.GetType()
  object.MemberwiseClone()
  object.ReferenceEquals(object, object)
  object.ToString()

Extension Methods
  NumberUtils.IsNumber(object)
  NumberUtils.ToDouble(object)
  ObjectUtils.ToStr(object?)

## Remarks

This class is intended to be inherited by concrete implementations that define specific JWT processing behaviors.

## Methods

### GenerateRefreshToken()

Generates a cryptographically secure refresh token by producing 64 random bytes using RandomNumberGenerator and returning the value as a Base64-encoded string.

    public static string GenerateRefreshToken()

#### Returns

string

  A Base64-encoded string representation of a 64-byte cryptographically random sequence suitable for use as a refresh token.

### GetJwtToken(string, string, string, string, int, Claim[]?)

Creates a new JWT security token for the specified user, signing it with the provided secret using HMAC-SHA256. The token includes standard subject, name, name identifier, and unique token identifier (JTI) claims, and optionally merges any additional claims supplied.

    public static JwtSecurityToken GetJwtToken(string username, string secret, string issuer, string audience, int expiration, Claim[]? additionalClaims = null)

#### Parameters

`username` string

  The subject identifier used to populate the token's Sub, Name, and NameIdentifier claims.

`secret` string

  The symmetric secret used to derive the signing key for the token.

`issuer` string

  The issuer (iss claim) to associate with the token.

`audience` string

  The audience (aud claim) to associate with the token.

`expiration` int

  The token lifetime in minutes, added to the current UTC time to compute the expiration date.

`additionalClaims` Claim[]

  Optional extra claims to merge into the token alongside the standard claims. If null, only the default claims are included.

#### Returns

JwtSecurityToken

  A JwtSecurityToken signed with HMAC-SHA256 and configured with the supplied issuer, audience, expiration, and claims.

### GetUsernameFromPrincipal(ClaimsPrincipal)

return username from claim

    public static string? GetUsernameFromPrincipal(ClaimsPrincipal principal)

#### Parameters

`principal` ClaimsPrincipal

#### Returns

string