/// <summary> /// 生成token /// </summary> /// <param name="token"></param> /// <returns></returns> public static string MakeToken(string loginName, int sysid, long userid) { TokenClaims Claim = GetTokenClaims(loginName, sysid, userid); var token = EncodeToken(Claim); return(token); }
/// <summary> /// 加密token结构为 /// </summary> /// <param name="token"></param> /// <returns></returns> private static string EncodeToken(TokenClaims token) { IJwtAlgorithm algorithm = new HMACSHA256Algorithm(); IJsonSerializer serializer = new JsonNetSerializer(); IBase64UrlEncoder urlEncoder = new JwtBase64UrlEncoder(); IJwtEncoder encoder = new JwtEncoder(algorithm, serializer, urlEncoder); var tokenStr = encoder.Encode(token.TokenPayload, ConfigHelper.GetConfig <string>("jwtsecret")); return(tokenStr); }
/// <summary> /// token是否有效 /// </summary> /// <param name="encodetokenStr"></param> /// <returns></returns> public static bool IsValid(string encodetokenStr) { TokenClaims claim = DecodeToken(encodetokenStr); if (claim == null) { return(false); } return(!IsOverTime(claim)); }
/// <summary> /// token是否过期 /// </summary> /// <param name="token"></param> /// <returns></returns> public static bool IsOverTime(TokenClaims claim) { long time = GetTimeSecond(); long overtime = claim.TokenPayload.Exp; if (time > overtime) { return(true); } return(false); }