Реакт не позволяет моему URL вызывать бэкэнд - PullRequest
0 голосов
/ 08 ноября 2019

Я бегал кругами, пытаясь понять, почему мое приложение реагирует в бесконечном цикле. Все начало происходить, когда я пытался интегрировать его с AD FS. По сути, вместо того, чтобы отправлять пользователя на страницу входа в систему, мне нужно запустить бэкэнд, который находится в ядре .net, вызывая схему вызова, чтобы перейти на страницу входа в Ad FS.

Тогда я решилсоздайте простое приложение реагирования, чтобы попытаться смоделировать эту проблему. Оказывается, это происходит с самым простым приложением реагирования, созданным Visual Studio в качестве шаблона.

После публикации приложения я в первый раз вызываю URL, приложение попадает в бэкэнд, чтобы загрузить все. Я объясню это лучше ниже, вот шаги, чтобы добраться до проблемы:

  1. создать новый .Net Core Web с React Application в Visual Studio
  2. опубликовать его в любомВаша папка
  3. перейдите в опубликованную папку, откройте оттуда CMD и просто введите donet myReactApp.dll, где «myReactApp» будет названием проекта. Это то же самое, что и публикация в IIS.
  4. Я думаю, что приложение будет работать на порте 5001. Вы должны быть в состоянии получить к нему доступ из браузера сейчас.
  5. Откройте элемент проверки и перейдите на вкладку Сеть .
  6. На странице перейдите на вкладку « Fecth Data »
  7. Перейдите на вкладку Сеть и посмотрите на сделанный запрос,Это происходит с бэкэндом через URL https://localhost:5001/api/SampleData/WeatherForecasts
  8. Теперь скопируйте этот URL и вставьте его в другую вкладку в вашем обзоре.
  9. При первом выполнении он получитМодель с данными и напечатайте JSON на экране
  10. Попробуйте еще раз, и вы увидите, что приложение переднего плана вернется, без данных

Этопроблема, приложение попадает в бэкэнд только в первый раз. После этого React пытается разрешить все маршруты самостоятельно. В моем случае из-за сбоя запроса мое приложение перенаправляется на мою страницу входа в систему, вызывая бесконечный цикл.

Трудно объяснить, а также трудно понять, почему это происходит. Благодаря объяснению по этому вопросу URL-адреса React-маршрутизатора не работают при обновлении или записи вручную Я смог немного больше понять об этом. Тем не менее, я до сих пор не могу найти способ ее решить.

Теперь вот что именно происходит в моем приложении. Мне нужно проверить, если пользователь уже прошел проверку подлинности на сервере AD FS. Если он не аутентифицирован, я делаю запрос к бэкэнду, чтобы перенаправить пользователя на страницу входа AD FS. Вот в чем проблема, она не попадает в бэкэнд, снова вызывает мою страницу входа в систему, и поскольку она еще не аутентифицирована, она остается в цикле.

Кто-нибудь имел эту проблему?

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