gehgassi_backend/gehGassi.Core/Interfaces/IPersistedTicketService.cs

38 lines
1.4 KiB
C#

using System;
using System.Threading.Tasks;
using gehGassi.Domain.Users;
namespace gehGassi.Core.Interfaces
{
/// <summary>
/// Schnittstellenbeschreibung für einen Service der die Verwaltung von gespeicherten Authentifizierungs-Ticktes ermöglicht
/// </summary>
public interface IPersistedTicketService : IService<PersistedTicket>
{
/// <summary>
/// Speichern eines Tickets.
/// Wenn es noch nicht existiert, wird es angelegt.
/// Wenn es existiert, wird es aktualisiert
/// </summary>
/// <param name="key">Key des Tickes</param>
/// <param name="userId">Benutzername</param>
/// <param name="ticket">Ticket als Byte-Array</param>
/// <param name="expires">Ablaufdatum des Tickets</param>
/// <returns>Task</returns>
Task SaveAsync(string key, string userId, byte[] ticket, DateTimeOffset? expires);
/// <summary>
/// Löscht alle abgelaufenen Tickets
/// </summary>
/// <returns>true wenn erfolgreich, false sonst</returns>
Task<bool> RemoveExpiredAsync();
/// <summary>
/// Löschen eines Tickets aus dem Store
/// </summary>
/// <param name="key">Key des Tickets</param>
/// <returns>true wenn erfolgreich, false sonst</returns>
Task<bool> RemoveAsync(string key);
}
}