Как я могу получить Access_Token от Flurl
Я разрабатываю приложение, у меня есть бэкэнд-сервер Azure API
Приложение, которое использует Owin Token Bearer
, Я пытаюсь войти в свой бэкэнд и получить токен обратно, как в моем веб-клиенте. Я могу войти в систему успешно, но в ответном сообщении нет токена. У меня есть этот код
string _url = ServerPath.Path + "/token";
HttpResponseMessage message = await _url.PostUrlEncodedAsync(
new {
UserName = Username,
Password = Password,
grant_type = "password"
}
);
Любая помощь будет высоко ценится.
1 ответ
Используемый метод аутентификации возвращает стандартный ответ токена OAuth 2.0. Токен находится в HttpResponseMessage
ты возвращаешься, и Flurl's ReceiveJson
может помочь вам вырвать это:
var response = await _url
.PostUrlEncodedAsync(new
{
UserName = Username,
Password = Password,
grant_type = "password"
})
.ReceiveJson();
var token = (string)response.access_token;
Обратите внимание, что я использовал неуниверсальную версию ReceiveJson
здесь, который возвращает dynamic
, Вы можете сделать это немного более надежным, создав класс (назовите его TokenResponse
) соответствуя структуре JSON всего тела ответа, используйте ReceiveJson<TokenResponse>()
и иметь строго типизированный объект ответа, чтобы сорвать access_token
снаружи.