private void RefreshTokenExpirations(ShadyAuthenticationToken token) { var validPeriod = token.ExpiresUtc - token.IssuedUtc; token.IssuedUtc = DateTime.UtcNow; token.ExpiresUtc = DateTime.UtcNow + validPeriod; }
private void SetTokenHeaders(ShadyAuthenticationToken token) { Response.Headers.Add("access-token", Options.ShadyAuthenticationTokenDataFormat.Protect(token)); Response.Headers.Add("token-type", ShadyAuthenticationDefaults.AuthenticationScheme); Response.Headers.Add("persist-login", token.IsPersistent.ToString()); Response.Headers.Add("user-id", token.Principal.FindFirstValue(ClaimTypes.NameIdentifier)); }
public MiddleToken(ShadyAuthenticationToken token) { MemoryStream outputStream = new MemoryStream(); var writer = new BinaryWriter(outputStream); token.Principal.WriteTo(writer); PrincipalBytes = outputStream.ToArray(); IssuedUtc = token.IssuedUtc; ExpriesUtc = token.ExpiresUtc; PrincipalIssuedUtc = token.PrincipalIssuedUtc; PrincipalExpiresUtc = token.PrincipalExpiresUtc; IsPersistent = token.IsPersistent; }
private async Task RebuildPrincipleAsync(ShadyAuthenticationToken token) { var tokenUserId = token.Principal.FindFirstValue(ClaimTypes.NameIdentifier); var user = await _userManager.FindByIdAsync(tokenUserId); if (user is null) { throw new Exception("User in principal could not be found"); } var principalSecurityStamp = token.Principal.FindFirstValue("AspNet.Identity.SecurityStamp"); if (principalSecurityStamp != user.SecurityStamp) { throw new Exception("User's security stamp has changed since principal was created"); } token.Principal = await _principalFactory.CreateAsync(user); var validPeriod = token.PrincipalExpiresUtc - token.PrincipalIssuedUtc; token.PrincipalIssuedUtc = DateTime.UtcNow; token.PrincipalExpiresUtc = DateTime.UtcNow + validPeriod; }
private async Task <AuthenticationTicket> BuildTicketAsync(ClaimsPrincipal principal, ShadyAuthenticationToken token) { var properties = new AuthenticationProperties { IsPersistent = token.IsPersistent, IssuedUtc = token.IssuedUtc, AllowRefresh = Options.SlidingExpiration }; return(new AuthenticationTicket(principal, properties, ShadyAuthenticationDefaults.AuthenticationScheme)); }