/// <summary> /// Restore the credentials from the session object, refresh if needed /// </summary> /// <returns></returns> public static async Task <Credentials> FromSessionAsync(IRequestCookieCollection requestCookie, IResponseCookies responseCookie) { if (requestCookie == null || !requestCookie.ContainsKey(FORGE_COOKIE)) { return(null); } Credentials credentials = JsonConvert.DeserializeObject <Credentials>(requestCookie[FORGE_COOKIE]); if (credentials.ExpiresAt < DateTime.Now) { await credentials.RefreshAsync(); responseCookie.Delete(FORGE_COOKIE); responseCookie.Append(FORGE_COOKIE, JsonConvert.SerializeObject(credentials)); } return(credentials); }