Exemple #1
0
        public void DecodeAccessToken()
        {
            string token = "8biE2RkHfPidk2tMJut9TLS5yk1XgmBM53WS1LjdLz3oiQJsGJKY8NE";

            Token.UserToken userToken = Token.UserToken.FromCipherToken(token);
            Debug.WriteLine(userToken.Expire_Time);
            Assert.IsTrue(userToken != null);
        }
Exemple #2
0
        public void CreateAccessTokenTest()
        {
            Token.UserToken ut = new Token.UserToken
            {
                AppId       = 10,
                Expire_Time = DateTime.Now.AddDays(1),
                UserCode    = "18576687613",
                UserId      = 3441217,
                Verifiable  = true
            };
            string token = ut.ToCipherToken();

            Debug.WriteLine("新Token:" + token);
        }
Exemple #3
0
        protected virtual bool LoginByToken(string rsaToken, string device_id, string appVersion, out string message)
        {
            string com_token;

            if (!xUtils.RsaDecryptPayPwd(rsaToken, out com_token))
            {
                message = "无效的登录会话,请重新登录";
                return(false);
            }
            if (!com_token.Contains("_"))
            {
                message = "无效的请求";
                return(false);
            }
            string[] array            = com_token.Split('_');
            string   token            = array[1];
            long     requestTimestamp = Convert.ToInt64(array[0]);
            long     timestamp        = (long)(DateTime.Now - TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1))).TotalSeconds;

            if (timestamp - requestTimestamp > 120)//请求有效期2分钟
            {
                message = "会话超时,请重新登录";
                return(false);
            }
            Token.UserToken userToken = Token.UserToken.FromCipherToken(token);
            if (userToken == null)
            {
                message = "无效的登录会话,请重新登录";
                return(false);
            }
            if (userToken.Expire_Time < DateTime.Now)
            {
                message = "登录会话已失效,请重新登录";
                return(false);
            }

            var   fac  = UserModuleFactory.GetUserModuleInstance();
            IUser user = fac?.GetUserByCode(userToken.UserCode);

            if (user == null)
            {
                message = "账号未注册";
                return(false);
            }
            Session[OAuthContext._USER_LOGIN_SESSION_NAME] = user;
            message = null;
            return(true);
        }