[HttpPost("token")]
public async Task<IActionResult> GetAccessToken()
{
Config.DefaultResponse response = new Config.DefaultResponse();
try
{
var grantType = "client_credentials";
var clientId = "";
var clientSecret = "";
var resource = "";
var tenantId = "";
var url = $"https://accounts.accesscontrol.windows.net/{tenantId}/tokens/OAuth/2";
using (var httpClient = new HttpClient())
{
var requestContent = $"grant_type={grantType}&client_id={clientId}&client_secret={clientSecret}&resource={resource}";
using (var httpContent = new StringContent(requestContent))
{
httpContent.Headers.Clear();
httpContent.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
using (var httpResponse = await httpClient.PostAsync(url, httpContent))
{
var responseText = await httpResponse.Content.ReadAsStringAsync();
//get as Json
string decodedString = System.Text.RegularExpressions.Regex.Unescape(responseText);
AccessTokenResponse responseObject = JsonConvert.DeserializeObject<AccessTokenResponse>(decodedString);
if (httpResponse.IsSuccessStatusCode)
{
return Ok(responseObject?.AccessToken);
}
else
{
response = new Config.DefaultResponse(500,"Failed to fetch token", responseObject);
return BadRequest(response);
}
}
}
}
}
catch (Exception ex)
{
var exceptionResponse = new AccessTokenResponse
{
};
return StatusCode(500, exceptionResponse);
}
}
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter