Можно ли проверить пользователя в бэкэнде без предоставления кредита? - PullRequest
0 голосов
/ 06 мая 2020

Мне нужно сделать страницу с кнопкой, которая заполняет определенную текстовую область данными из базы данных. Однако мне нужно, чтобы он также требовал прав администратора.

Можно ли использовать метод API, который не требует кредитов, а вместо этого сеанс идентификации? В идеале что-то, что получает HttpContext.User?

Я ничего не знаю о JavaScript, мне удалось собрать эту штуку:

const url = '/api/clients/';

function getItems() { 
    fetch(url + document.getElementById('input').value)
        .then(response => response.json())
        .then(data => _displayItems(data));
}

function _displayItems(arrayOfResults) {
    const textbox = document.getElementById('textbox');

    textbox.value = "";

    arrayOfResults.forEach(json => {
        textbox.value += json.deviceIdentifier + "\n";
    });
}

У меня конечная точка API в http://localhost/api/clients/{string}, который выполняет запрос к базе данных и работает должным образом. Но я не могу позволить кому-либо получить доступ к этим данным, и мне трудно понять, как заставить пользователя:

  • не предоставлять свои учетные данные
  • иметь возможность использовать его с минимальными усилиями (ie. Просто нажмите кнопку и получите результаты)
  • не сможете использовать эту конечную точку, пока не вошли в систему на веб-сайте

Обычно я просто использую эту строку, чтобы получить пользователь, который пытается получить доступ к контроллеру:

var currentUser = await _userManager.FindByNameAsync(_userManager.GetUserName(HttpContext.User));

и go оттуда. Но когда мой JS скрипт обращается к API, он не предоставляет способ проверки с использованием HttpContext, исходя из того, что я вижу.

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