Ejemplo n.º 1
0
        public TokenResultViewModel DoPassword(JwtParameterViewModel model)
        {
            var loginViewModel = new LoginViewModel
            {
                UserName = model.Username,
                Password = model.Password
            };
            dynamic result;

            result = AuthenticateUser(loginViewModel).Result;

            if (result.Result == AuthResult.Success)
            {
                return(new TokenResultViewModel
                {
                    Code = "1000",
                    Message = "Authenticated Successfully",
                    Data = GetJwt(model.ClientId, result)
                });
            }
            else if (result.Result == AuthResult.AccountLocked)
            {
                return(new TokenResultViewModel
                {
                    Code = "3000",
                    Message = "Account locked.",
                    Data = null
                });
            }
            else
            {
                return(new TokenResultViewModel
                {
                    Code = "2000",
                    Message = "Invalid Username and Password",
                    Data = null
                });
            }
        }
        public IActionResult Authenticate([FromBody] JwtParameterViewModel parameters)
        {
            if (parameters == null || (parameters.GrantType == "refresh_token" && string.IsNullOrEmpty(parameters.RefreshToken)))
            {
                return(new NotFoundResult());
            }

            if (parameters.GrantType == "password")
            {
                return(new OkObjectResult(_service.DoPassword(parameters)));
            }
            else if (parameters.GrantType == "refresh_token")
            {
                return(new OkObjectResult(_service.DoRefreshToken(parameters)));
            }

            return(new OkObjectResult(new TokenResultViewModel
            {
                Code = "9000",
                Message = "bad request",
                Data = null
            }));
        }
Ejemplo n.º 3
0
        public TokenResultViewModel DoRefreshToken(JwtParameterViewModel model)
        {
            var oldToken = new JwtSecurityTokenHandler().ReadJwtToken(model.RefreshToken);

            if (oldToken.ValidTo > DateTime.UtcNow)
            {
                return(new TokenResultViewModel
                {
                    Code = "4000",
                    Message = "Token has refreshed successfully",
                    Data = GetJwt(oldToken.Subject, null)
                });
            }
            else
            {
                return(new TokenResultViewModel
                {
                    Code = "5000",
                    Message = "Refresh token has expired",
                    Data = null
                });
            };
        }