using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.IdentityModel.Tokens.Jwt;
using System.Linq;
using System.Security.Claims;
using System.Text;
using System.Threading.Tasks;
namespace HuanMeng.DotNetCore.JwtInfrastructure.Interface
{
///
/// jwt帮助类
///
public interface IJwtAuthManager
{
///
/// 用户刷新令牌只读词典
///
IImmutableDictionary UsersRefreshTokensReadOnlyDictionary { get; }
///
/// 生成令牌
///
/// 用户名
/// 用户的有关信息
///
///
JwtAuthResult GenerateTokens(string username, Claim[] claims, DateTime now);
///
/// 刷新令牌
///
///
///
///
///
JwtAuthResult Refresh(string refreshToken, string accessToken, DateTime now);
///
/// 删除过期的刷新令牌
///
///
void RemoveExpiredRefreshTokens(DateTime now);
///
/// 按用户名删除刷新令牌
///
///
void RemoveRefreshTokenByUserName(string userName);
///
/// 解码JwtToken
///
///
///
(ClaimsPrincipal, JwtSecurityToken?) DecodeJwtToken(string token);
}
}