// Kyoo - A portable and vast media library solution. // Copyright (c) Kyoo. // // See AUTHORS.md and LICENSE file in the project root for full license information. // // Kyoo is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // any later version. // // Kyoo is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with Kyoo. If not, see . using System; using System.Threading.Tasks; using Kyoo.Abstractions.Models; using Microsoft.IdentityModel.Tokens; namespace Kyoo.Authentication; /// /// The service that controls jwt creation and validation. /// public interface ITokenController { /// /// Create a new access token for the given user. /// /// The user to create a token for. /// When this token will expire. /// A new, valid access token. string CreateAccessToken(User user, out TimeSpan expireIn); /// /// Create a new refresh token for the given user. /// /// The user to create a token for. /// A new, valid refresh token. Task CreateRefreshToken(User user); /// /// Check if the given refresh token is valid and if it is, retrieve the id of the user this token belongs to. /// /// The refresh token to validate. /// The given refresh token is not valid. /// The id of the token's user. Guid GetRefreshTokenUserID(string refreshToken); }