Guest User

Okta Refresh Token Method

a guest
May 12th, 2020
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.66 KB | None | 0 0
  1.         [AllowAnonymous]
  2.         [HttpPost("refresh")]
  3.         public async Task<ActionResult<object>> HandleRefresh([FromBody] RefreshRequest req)
  4.         {
  5.             if (req.RefreshToken == "") {
  6.                 return BadRequest();
  7.             }
  8.             using (var client = new HttpClient())
  9.             {
  10.                 var uri = new Uri($"https://{_oktaOptions.Value.OktaDomain}/oauth2/{_oktaOptions.Value.AuthorizationServerId}/v1/token");
  11.                 var content = new FormUrlEncodedContent(new[] {
  12.                     new KeyValuePair<string, string>("grant_type",  "refresh_token"),
  13.                     new KeyValuePair<string, string>("scope",  "offline_access openid"),
  14.                     new KeyValuePair<string, string>("client_id",  _oktaOptions.Value.ClientId),
  15.                     new KeyValuePair<string, string>("client_secret",  _oktaOptions.Value.ClientSecret),
  16.                     new KeyValuePair<string, string>("refresh_token",  req.RefreshToken)
  17.                 });
  18.                 var request = new HttpRequestMessage
  19.                 {
  20.                     Method = HttpMethod.Post,
  21.                     RequestUri = uri,
  22.                     Headers = {
  23.                         { "Accept", "application/json" },
  24.                     },
  25.                     Content = content
  26.                    
  27.                 };
  28.                 var response = await client.SendAsync(request);
  29.                 if (response.IsSuccessStatusCode) {
  30.                     return Ok(response.Content.ReadAsStringAsync().Result);
  31.                 }
  32.                 return BadRequest(response.Content.ReadAsStringAsync().Result);
  33.             }
  34.         }
  35.     }
Add Comment
Please, Sign In to add comment