// ***********************************************************************
// 
//     Heath
// 
// ***********************************************************************
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
namespace Core.Cerberos.Adapters.Contracts
{
    /// 
    /// Interface for authenticacion service.
    /// 
    public interface ITokenService
    {
        /// 
        /// Refreshes the access token.
        /// 
        string GenerateAccessToken(TokenAdapter adapter);
        /// 
        /// Refreshes the access token.
        /// 
        IActionResult RefreshAccessToken(HttpContext context, TokenAdapter adapter);
        /// 
        /// Extracts the user email claim from the http context.
        /// 
        string GetEmailClaim(HttpContext httpContext);
    }
}