Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
        /// <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);
        }
Beispiel #3
0
        /// <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));
        }
Beispiel #4
0
        /// <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);
        }