Ejemplo n.º 1
0
        public void OnActionExecuting(ActionExecutingContext context)
        {
            var    secret  = JwtService.secret;
            var    request = context.HttpContext.Request;
            string auth;

            if (!request.Cookies.TryGetValue("authentication", out auth))
            {
                SetRedirect(context);
            }
            else
            {
                try
                {
                    var jwtObject = Jose.JWT.Decode <Dictionary <string, Object> >(
                        auth, Encoding.UTF8.GetBytes(secret), JwsAlgorithm.HS512);
                    if (JwtService.IsTokenExpired(jwtObject["Exp"].ToString()))
                    {
                        SetRedirect(context);
                    }
                    else
                    {
                        string jwtToken = JwtService.ReGenerateToken(jwtObject["Exp"].ToString(), jwtObject["MemID"].ToString());
                        if (jwtToken != null)
                        {
                            JwtService.CreateJwtCookie(context.HttpContext.Response, jwtToken);
                        }
                    }
                }
                catch (Exception e)
                {
                    SetRedirect(context);
                }
            }
        }
Ejemplo n.º 2
0
        public IActionResult TryLogin([FromBody] LoginViewModel vm)
        {
            vm.account  = HttpUtility.HtmlEncode(vm.account);
            vm.password = HttpUtility.HtmlEncode(vm.password);

            var client      = new HttpClient();
            var endpointurl = endpoint + "/Member/Login";
            var json        = JsonConvert.SerializeObject(vm);
            var content     = new StringContent(json, System.Text.Encoding.UTF8, "application/json");
            var response    = client.PostAsync(endpointurl, content).Result;

            var resultJSON = response.Content.ReadAsStringAsync().Result;
            var result     = JsonConvert.DeserializeObject <APIResult>(resultJSON);

            //create cookie
            if (result.isSuccess)
            {
                var jwtToken = JwtService.GenerateToken((string)result.Data);

                JwtService.CreateJwtCookie(Response, jwtToken);
            }

            return(Json(result));
        }