// Copyright Epic Games, Inc. All Rights Reserved. using System; using System.Collections.Generic; namespace EpicGames.OIDC; /// /// An in-memory token store without encryption, intended for testing /// // ReSharper disable once ClassNeverInstantiated.Global public class InMemoryTokenStore : ITokenStore { private readonly Dictionary _providerToRefreshToken = new (); /// public virtual bool TryGetRefreshToken(string oidcProvider, out string refreshToken) { if (!_providerToRefreshToken.TryGetValue(oidcProvider, out string? result)) { refreshToken = ""; return false; } refreshToken = result; return true; } /// public virtual void AddRefreshToken(string providerIdentifier, string refreshToken) { _providerToRefreshToken[providerIdentifier] = refreshToken; } /// public virtual void Save() { // No need - data exists only in-memory } /// /// Dispose method /// /// protected virtual void Dispose(bool disposing) { if (disposing) { // no resources to release } } /// public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } }