public IActionResult RefreshToken([FromBody] RefreshTokenBindingModel model) { if (!ModelState.IsValid || model == null) { return(BadRequest(ModelState)); } var response = _userService.RefreshToken(model); if (response.OK) { return(Ok(response.ResponseData)); } return(BadRequest(response.Error)); }
void IPOSInterface.RefreshToken() { var refreshTokenModel = new RefreshTokenBindingModel() { ClientID = ClientID, ClientSecret = ClientSecret, RefreshToken = RefreshToken, GrantType = "refresh_token" }; var accessTokenModel = "https://cloud.lightspeedapp.com/oauth/access_token.php" .PostJsonAsync(refreshTokenModel) .ReceiveJson <AccessTokenBindingModel>().Result; DateTokenExpiration = DateTime.Now.AddSeconds(accessTokenModel.ExpiresIn); AccesssToken = accessTokenModel.AccessToken; }
public ResponseModel RefreshToken(RefreshTokenBindingModel model) { var principal = _tokenService.GetPrincipalFromExpiredToken(model.token); var username = principal.Identity.Name; User user = _db.Query("Users").Where("username", username).First <User>(); if (user == null || user.refreshToken != model.refreshToken) { _response.SetError(ReponseErrorType.INVALID_REFRESH_TOKEN); return(_response); } var generatedToken = _tokenService.GenerateAccessToken(principal.Claims, false); var jwtToken = new JwtSecurityTokenHandler().WriteToken(generatedToken); var refreshToken = _tokenService.GenerateRefreshToken(); refreshTokenField(user.ID, refreshToken); _response.SetResponseData(createTokenResponse(jwtToken, refreshToken, generatedToken)); return(_response); }