Проверка подлинности на основе токена в основном веб-приложении mvc asp.net с использованием веб-API - PullRequest
0 голосов
/ 04 июня 2019

У меня есть веб-приложение .net core 2.2, в котором вызовы базы данных обрабатываются через веб-интерфейс API.Я пытаюсь подтвердить подлинность моего приложения с помощью веб-API.Я сгенерировал токен JWT на своем веб-API.но я не могу получить этот токен в моем веб-приложении.

Как я могу использовать токен, выпущенный web api в моем веб-приложении, для доступа к другим модулям?

Заранее спасибо!

код в моем веб-приложении:

Task ValidUser = commonHelper.CheckValidUserToken (identity);

Код, возвращающий токен из веб-API:

OkObjectResult tokenObject = Ok(new {token = new JwtSecurityTokenHandler (). WriteToken (token), expiration = token.ValidTo});return tokenObject;

Мне нужно получить токен для доступа к контроллерам в веб-API.Теперь я получаю задание.

1 Ответ

0 голосов
/ 05 июня 2019

Как правило, ваш клиент отправит HTTP-запрос стороне веб-интерфейса с вашими учетными данными, веб-интерфейс API проверит учетные данные, создаст токен и отправит обратно вашему клиенту.

Вы не предоставили клиентукоды.Согласно вашему веб-интерфейсу API, возвращенному OkObjectResult, вы можете сначала создать класс объекта, например:

public class Value
{
    public string token { get; set; }
    public string expiration { get; set; }
}

public class RootObject
{
    public Value value { get; set; }

    public int statusCode { get; set; }
}

, и десериализовать строку json, которая считывает ответ на объект, получая значение токена, например:

// call api
var apiClient = new HttpClient();

var response = await apiClient.GetAsync("https://localhost:44348/api/values");
if (!response.IsSuccessStatusCode)
{
    Console.WriteLine(response.StatusCode);
}
else
{
    var content = await response.Content.ReadAsStringAsync();
    RootObject rootObject = Newtonsoft.Json.JsonConvert.DeserializeObject<RootObject>(content);

    var token = rootObject.value.token;

} 

Мы не знаем, что такое функция CheckValidUserToken, но вы должны проверить, как клиентское приложение отправляет запрос токена, и прочитать ответ.

...