Паспортная аутентификация работает через почтальон, но не через веб-приложение - PullRequest
0 голосов
/ 21 ноября 2018

Используя Express и Passport JS на сервере, мы в настоящее время можем войти в приложение и получить доступ ко всем запросам API с помощью почтальона.

Однако, когда мы пытаемся сделать запросы API, которые требуют аутентификации в веб-приложении React JS, мы получаем 401 несанкционированную ошибку.

Мы запустили логи как из запроса почтальона, так и из запроса веб-приложения, и оба передают cookie connect.sid в заголовок.

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

Вещи, которые я пробовал:

  • ручная настройка заголовков, чтобы разрешить запросы между источниками
  • установка токена на предъявителя Authorize
  • Указание наbackend источник внешнего интерфейса, который позволяет выполнять вызовы API только с внешнего веб-сервера

Приложение является приложением ReactJS, и я выполняю вызовы API с помощью Axios

1 Ответ

0 голосов
/ 21 ноября 2018

Я исправил это путем передачи withCredentials при входе в систему, это отправляет вашего пользователя в passport.js и аутентифицирует пользователя.

Вам нужно вызывать withCredentials каждый раз, когда вы делаете вызов API, хотя

...