/// <summary> /// Validate current JWT server authorization token and renew if expired /// </summary> /// <param name="context">context</param> /// <returns>true if authorization server's authorization token is valid, false if not</returns> private async Task <bool> Validate(IWorkContext context, bool renewIfRequired = true) { Verify.IsNotNull(nameof(context), context); if (_jwtTokenDetails != null && !_jwtTokenDetails.IsExpired) { return(true); } string requestToken = await _clientTokenManager.CreateRequestToken(context); if (requestToken == null || !renewIfRequired) { return(false); } RestResponse <string> response = await _clientTokenManager.RequestServerAuthorizationToken(context, requestToken); response.AssertSuccessStatusCode(context); Verify.IsNotNull(nameof(response.Value), response.Value); JwtTokenDetails jwtToken = await _clientTokenManager.ParseAuthorizationToken(context, response.Value); _jwtTokenDetails = jwtToken; return(true); }
public static async Task <RestResponse> EnsureSuccessStatusCodeAsync(this RestResponse httpResponseResult, IWorkContext context, HttpStatusCode[] acceptedCodes = null) { try { httpResponseResult.AssertSuccessStatusCode(context, acceptedCodes: acceptedCodes); } catch (RestResponseException) { await httpResponseResult.GetErrorMessageAsync(context); throw; } return(httpResponseResult); }