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 })); }
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 }); }; }