OAuth2 Bearer Token not getting sent with RestSharp call

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP


OAuth2 Bearer Token not getting sent with RestSharp call



Credentials are right, because I can get an API response using PS with the same client id and secret. The token isn't invalid, but it won't get attached correctly to the rest request


API response


PS


client id


secret



Unauthorized. Access token is missing or invalid



Here's my code:


var client = new RestClient(url);
client.Authenticator = new OAuth2AuthorizationRequestHeaderAuthenticator("Bearer: " + OAuthToken);
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
request.AddHeader("Accept", "application/json");

foreach (var paramName in parameters.Keys) {
request.AddParameter(paramName, parameters[paramName]);
}

request.RequestFormat = DataFormat.Json;

IRestResponse response = client.Execute(request);
if (response.StatusCode == HttpStatusCode.OK) {
string rawResponse = response.Content;
dynamic deserializedResponse = new JsonDeserializer().Deserialize<dynamic>(response);
return deserializedResponse;
}
else {
Dictionary<string, string> returnData = new JsonDeserializer().Deserialize<Dictionary<string, string>>(response);
throw new Exception("Failed call to API Management: " + string.Join(";", returnData));
}



I've also tried using:


request.AddHeader("authorization", "Bearer " + OAuthToken);


request.AddHeader("authorization", string.Format("Bearer " + OAuthToken));


request.AddHeader("authorization", string.Format("Bearer: " + OAuthToken));


request.AddHeader("authorization", $"Bearer {OAuthToken}");


request.AddParameter("authorization, "Bearer " + OAuthToken", HttpRequestHeader);


request.AddHeader("authorization", "bearer:" + access + "");



None worked.





Whether the above mentioned code is token generated part?
– Subburaj
2 days ago




1 Answer
1



First, you should decorate the controller or the action like below:


[Authorize(AuthenticationSchemes = "Bearer")]
public class ApiServiceController : Controller
{
}



or better than that:


[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
public class ApiServiceController : Controller
{
}



Then you should add token bearer as this line:


request.AddParameter("Authorization", $"Bearer {Token}", ParameterType.HttpHeader);



where Token is the value of the received token from login.



If you need more codes, just tell me ;)






By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Popular posts from this blog

Arduino Mega cannot recieve any sketches, stk500_recv() programmer is not responding

Visual Studio Code: How to configure includePath for better IntelliSense results

Better method to check all objects' parameters with a single call