ASP. NET Core JWT Token не работает через HttpClient - PullRequest
0 голосов
/ 02 мая 2020

Я новичок в аутентификации JWT и настроил свой ASP. NET Core 3 API для аутентификации токена, используя учебное руководство здесь:

https://chrissainty.com/securing-your-blazor-apps-authentication-with-clientside-blazor-using-webapi-aspnet-core-identity/

Я добавил атрибут [Authorize] в контроллер, и с помощью Postman я могу войти в систему и получить токен, а также использовать токен через Postman для извлечения данных из контроллера - все работает, как и ожидалось.

Моя проблема в том, что когда я вхожу в систему с помощью C# HttpClient через приложение Xamarin, а затем использую токен, который отправляется обратно, я получаю ошибку 401 при доступе к контроллеру либо через Postman, либо HttpClient.

Код, который я использую, выглядит следующим образом:

var client = new HttpClient();

var model = new JwtLoginModel()
            {
                Email = email,
                Password = password,
                RememberMe = false
            };

var json = JsonConvert.SerializeObject(model);

HttpContent httpContent = new StringContent(json);
var response = await client.PostAsync(Constants.BaseApiAddress + "api/Login", new StringContent(json, Encoding.UTF8, "application/json"));

var content = await response.Content.ReadAsStringAsync();
JObject jwtDynamic = JsonConvert.DeserializeObject<dynamic>(content);
var accessToken = jwtDynamic.Value<string>("token");

Используя возвращенное accessToken через Почтальона (и HttpClient), оба возвращают ошибку 401.

Может кто-нибудь подсказать, что я делаю не так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...