public AutomaticValueResult GetAutomaticValueForClaim(ClaimKey claim, TokenBuilderContext context) { Ensure.That(claim).IsNotNull(); Ensure.That(context).IsNotNull(); if (claim == ClaimKey.Expires) { if (context.Configuration?.GetRefreshTokenLength() != null) { var expiry = context.ReferenceTime .Add(context.Configuration.GetRefreshTokenLength().Value) .ToUnixTimestamp(); return(AutomaticValueResult.CreateSuccess(claim, expiry)); } else { return(AutomaticValueResult.CreateFail(claim, "Refresh token length value not found in configuration.")); } } else { return(AutomaticValueResult.CreateFail(claim, $"{claim} can not be automatically derived.")); } }
public IDictionary <string, object> GetHeader(TokenBuilderContext context) { return(new Dictionary <string, object>() { { "alg", "HS256" }, { "typ", "JWT" } }); }
public IEnumerable <string> FilterClaims(IEnumerable <string> claims, TokenBuilderContext context) { return(claims.Intersect(new string[] { ClaimKey.Expires, ClaimKey.Subject })); }
private IDictionary <string, object> deriveAutomaticClaims( ITokenSpec tokenSpec, IEnumerable <string> automaticClaims, TokenBuilderContext context) { Dictionary <string, object> answer = new Dictionary <string, object>(); foreach (var claim in automaticClaims) { var result = tokenSpec .GetAutomaticValueForClaim(claim, context) .ThrowOnFail(); if (result.Value != null) { answer[claim] = result.Value; } } return(answer); }
public IEnumerable <string> FilterClaims(IEnumerable <string> claims, TokenBuilderContext context) { return(claims); }
public IDictionary <string, object> GetHeader(TokenBuilderContext context) { return(null); }