public ActionResult RefreshToken()
        {
            var jsonString = String.Empty;

            Request.InputStream.Position = 0;
            using (var inputStream = new StreamReader(Request.InputStream))
            {
                jsonString = inputStream.ReadToEnd();
            }

            JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
            RefreshModel         serJsonDetails       = javaScriptSerializer.Deserialize(jsonString, typeof(RefreshModel)) as RefreshModel;


            RefreshModel refreshtoken = new APIDAL().LookupRefreshToken(new Guid(serJsonDetails.refresh_token)).FirstOrDefault();
            IdentityUser user         = UserManager.FindByNameAsync(refreshtoken.email).GetAwaiter().GetResult(); //awaite.getresult to force synchronous call.

            if (user != null)
            {
                JWTPayload payload = new JWTPayload(user.Email, user.FirstName, user.LastName, user.Telephone);

                payload.iat = (Int32)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
                payload.exp = payload.iat + (60 * 60); //1 hour

                byte[]          secretKey = Encoding.ASCII.GetBytes("ErvliegtEenMeeuwLangsHetRaamokja");
                RefreshResponse response  = new RefreshResponse();
                response.access_token = Jose.JWT.Encode(payload, secretKey, JwsAlgorithm.HS256);
                response.token_type   = "Bearer";
                return(Json(response));
            }

            return(new APIAuth(Request, Response).Forbidden());
        }
Beispiel #2
0
    // Start is called before the first frame update
    void Start()
    {
        string[] args  = Environment.GetCommandLineArgs();
        string   token = args[1];

        //string token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJKV1RQYXlsb2FkIjoie1wiU2VydmVyc0luZm9cIjp7XCJTZXJ2ZXJzXCI6W119LFwiVXNlcklEXCI6XCJKZW5zXCJ9IiwibmJmIjoxNTcwMTE5MjkwLCJleHAiOjE1NzA1NTEyOTAsImlhdCI6MTU3MDExOTI5MH0.L31Fkm8kaOpVoglhgEv_GvCAD6b1ep0h56OstUnF0d4";

        JwtSecurityToken tokenSent = new JwtSecurityToken(token);
        JWTPayload       payload   = JWTManager.GetModelFromToken <JWTPayload>(token);

        clientName = payload.UserID;

        chatSystem = gameObject.GetComponent <ChatSystem>();

        int port = 13001;

        //string IpAdress = "10.131.67.203";

        client = new TcpClient(Globals.MIDDLEWARE_IP, port);
        //client = new TcpClient("192.168.10.135", port);

        userName = ((IPEndPoint)client.Client.LocalEndPoint).Address.ToString();

        //client.NoDelay = true;
        Debug.Log("Connected?");


        StartCoroutine(ListenToServer());
    }
Beispiel #3
0
        public AjaxResult SubmitLogin(string userName, string password)
        {
            if (userName.IsNullOrEmpty() || password.IsNullOrEmpty())
            {
                return(Error("账号或密码不能为空!"));
            }
            password = password.ToMD5String();
            var theUser = GetIQueryable().Where(x => x.UserName == userName && x.Password == password).FirstOrDefault();

            if (theUser != null)
            {
                //生成token,有效期一天
                JWTPayload jWTPayload = new JWTPayload
                {
                    UserId = theUser.Id,
                    Expire = DateTime.Now.AddDays(1)
                };
                string token = JWTHelper.GetToken(jWTPayload.ToJson(), JWTHelper.JWTSecret);

                return(Success(token));
            }
            else
            {
                return(Error("账号或密码不正确!"));
            }
        }
        public JsonWebToken(string clientId, string audience)
        {
            DateTime validFrom = DateTime.UtcNow;

            DateTime validTo = validFrom + TimeSpan.FromSeconds(JsonWebTokenConstants.JwtToAadLifetimeInSeconds);

            this.Payload = new JWTPayload
                           {
                               Audience = audience,
                               Issuer = clientId,
                               ValidFrom = ConvertToTimeT(validFrom),
                               ValidTo = ConvertToTimeT(validTo),
                               Subject = clientId,
                               JwtIdentifier = Guid.NewGuid().ToString()
            };
        }
Beispiel #5
0
 /// <summary>
 /// 获取Token信息,解密获得其他信息
 /// </summary>
 /// <param name="value"></param>
 /// <returns>负载信息</returns>
 public static JWTPayload GetPayload(string value)
 {
     try
     {
         //先把加密的文字解密
         byte[] basPayload = Convert.FromBase64String(value);
         string decPayload = System.Text.Encoding.UTF8.GetString(basPayload);
         //将解密后的数据序列化成对象
         JWTPayload payload = JsonConvert.DeserializeObject <JWTPayload>(decPayload);
         return(payload);
     }
     catch (Exception)
     {
         return(null);
     }
 }
Beispiel #6
0
        public TokenResult Login(string username, string password)
        {
            // 为了简化不做用户名和密码验证
            var expire = DateTime.UtcNow.AddSeconds(20); // DateTime.UtcNow.AddDays(7);
            var res    = new TokenResult()
            {
                expires = expire
            };
            var payloadObj = new JWTPayload()
            {
                name = username,
                role = "manage",
                exp  = expire
            };

            res.token = new JWT().Encode <JWTPayload>(payloadObj, PassportConfig.SecretKey);

            return(res);
        }