Кто-нибудь знает, как я могу запросить refresh_token? Я пытаюсь получить refresh_token при запросе access_token. На данный момент я получаю этот вывод.
{
“access_token”: “eyJhbGciOiJSU…Zp1eS1WLY2KW2cLvEHhfDfikAYhPEDbAHTvtQu_yBgRsRxhTTPA”,
“refresh_token”: null,
“expires_in”: “3600”,
“token_type”: “Bearer”,
“scope”: “app.api.whatever.full”
}
Следовательно, refresh_token имеет значение null. Теперь я знаю, что у вас не может быть токена refre sh с типом предоставления учетных данных клиента. Поэтому я создал еще двух клиентов, один с типом предоставления пароля, а другой - с гибридным типом предоставления. Я также установил для обеих сторон автономный доступ. При запросе токена я получаю invalid_client. Я застрял и не знаю, как решить эту проблему. Вот как я запрашиваю токен:
public async Task GetUserToken(string client_id, string client_secret, string username, string password, string scope)
{
var client = new HttpClient();
var dict = new Dictionary();
dict.Add(“client_id”, client_id);
dict.Add(“client_secret”, client_secret);
dict.Add(“grant_type”, “password”);
dict.Add(“scope”, scope);
dict.Add(“username”, username);
dict.Add(“password”, password);
client.BaseAddress = new Uri($”{Request.Scheme}://{Request.Host.Value}”);
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(“application/json”));
var req = new HttpRequestMessage(HttpMethod.Post, “/connect/token”) { Content = new FormUrlEncodedContent(dict) };
var res = await client.SendAsync(req).ConfigureAwait(false);
if (res.IsSuccessStatusCode)
{
return Ok(res.Content.ReadAsStringAsync().Result);
}
return BadRequest();
}
Может ли кто-нибудь указать, где я здесь ошибаюсь?