Exemple #1
0
        /// <summary>
        /// 生成JwtToken
        /// </summary>
        /// <param name="payload">不敏感的用户数据</param>
        /// <returns></returns>
        public static string Set(JwtPaylod payload, TimeSpan timeSpan)
        {
            //格式如下
            //var payload = new Dictionary<string, object>
            //{
            //    { "username","admin" },
            //    { "pwd", "claim2-value" }
            //};
            payload.exp = Expires(timeSpan);
            IJwtAlgorithm     algorithm  = new HMACSHA256Algorithm();
            IJsonSerializer   serializer = new JsonNetSerializer();
            IBase64UrlEncoder urlEncoder = new JwtBase64UrlEncoder();
            IJwtEncoder       encoder    = new JwtEncoder(algorithm, serializer, urlEncoder);
            var token = encoder.Encode(payload, WebConfig.JWT_Secret);

            return(token);
        }
Exemple #2
0
        /// <summary>
        /// 登录
        /// </summary>
        /// <param name="tokenType"></param>
        public static void ToSigin(TokenTypeEnum tokenType, JwtPaylod payload)
        {
            switch (tokenType)
            {
            case TokenTypeEnum.Admin_Login:
                AppHelper.SignIn(payload, adminTokenName, tokenTimeSpanForAdmin);
                break;

            case TokenTypeEnum.Screen_Auth:
                AppHelper.SignIn(payload, homeScreenTokenName, tokenTimeSpanForHomeScreen);
                break;

            case TokenTypeEnum.SignIn_Auth:
                AppHelper.SignIn(payload, homeSignInTokenName, tokenTimeSpanForHomeSignIn);
                break;

            default:
                throw new ApplicationException("不存在此类型的token");
            }
        }
        /// <summary>
        /// 登入
        /// </summary>
        /// <param name="payload"></param>
        public static void SignIn(JwtPaylod payload, string tokenName, TimeSpan timeSpan)
        {
            string token = JWTHelper.Set(payload, timeSpan);

            CookieHelper.Set(token, tokenName, timeSpan);
        }