public void GenerateLogoutToken(UserDb user) { var key = GetRandom(32); var keySalt = GetRandom(16); var keyHash = GetRefreshKeyHashed(key, keySalt); var logoutToken = new LogoutTokenDb { Created = DateTime.UtcNow, TokenKey = keyHash, TokenSalt = keySalt, User = user, }; dbContext.LogoutToken.Add(logoutToken); dbContext.SaveChanges(); var logoutTokenDto = new LogoutTokenDto { Id = logoutToken.Id, TokenKey = Convert.ToBase64String(key), }; var authOptions = new CookieOptions { MaxAge = new TimeSpan(0, 30, 0), }; var sessionJson = JsonSerializer.Serialize(logoutTokenDto); var sessionJsonBytes = System.Text.Encoding.UTF8.GetBytes(sessionJson); var sessionBase64 = Convert.ToBase64String(sessionJsonBytes); context.Response.Cookies.Append(AUTH_LOGOUT_TOKEN, sessionBase64, authOptions); }
public void RemoveLogoutToken(LogoutTokenDb logoutToken) { // Fix: Delete from Db context.Response.Cookies.Delete(AUTH_LOGOUT_TOKEN); dbContext.LogoutToken.Remove(logoutToken); dbContext.SaveChanges(); }