public static void StoreInCookie(AuthTokenProperties tokenInformation, HttpResponse response) { string serializedJson = JsonConvert.SerializeObject(tokenInformation); response.Cookies.Append(AuthCookieName, serializedJson, new CookieOptions() { HttpOnly = true, Secure = false, // In production, this should be set to true Expires = DateTime.UtcNow.AddDays(90) // Feel free to tweak expiry for your application }); }
public override async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next) { AuthTokenProperties tokenProperties = CookieUtils.GetCookieFromRequest(context.HttpContext.Request); if (tokenProperties != null) { // Check if tokens are expired if (DateTime.UtcNow > tokenProperties.Expiry) { // Renew them tokenProperties = await MsGraphAuthUtils.Instance.ExchangeRefreshTokenForAuthInfo(tokenProperties.RefreshToken); } AuthContext.SetContext(context.HttpContext, tokenProperties); } await next(); }
public static void SetContext(HttpContext context, AuthTokenProperties tokenProperties) { context.Items[AuthContextKey] = tokenProperties; }