Проверка подлинности Oidc Blazor WebAssembly отлично работает локально, но в статических веб-приложениях Azure она составляет 404 при аутентификации / входе-обратном вызове

#blazor-webassembly #.net-5

#blazor-webassembly #.net-5

Вопрос:

У меня есть веб-сборка Blazor .Net5, которая использует аутентификацию Auth0 OIDC. Я настраиваю аутентификацию, следуя этим инструкциям: https://auth0.com/blog/securing-blazor-webassembly-apps /

Следуя этим инструкциям, я смог разработать свое приложение локально и заставить его работать с аутентификацией Auth0. Однако, когда я развертываю приложение с использованием статических веб-приложений Azure, проверка подлинности больше не работает. Просматривая инструменты разработчика Chrome, я вижу, что он успешно (302) вызывает мою конечную точку авторизации:

 https://login.mysite.com/authorize?clientid=*****...  (302)
 

Следующий URL-адрес — это обратный вызов на мой сайт, который завершается с ошибкой 404:

 https://myapp.mysite.com/authentication/login-callback?code=***... (404)
 

В моем index.html:

 <script src="_content/Microsoft.AspNetCore.Components.WebAssembly.Authentication/AuthenticationService.js"></script>
 

Есть идеи, что я могу сделать, чтобы это исправить?

Ответ №1:

Я добавил маршруты.файл json в wwwroot со следующим, чтобы устранить проблему.

 {
  "routes": [
    {
      "route": "/*",
      "serve": "/index.html",
      "statusCode": 200
    }
  ]
}
 

Комментарии:

1. Отлично работает, спасибо! Со своей стороны, мне пришлось добавить маршрут в свой api, чтобы убедиться, что он не обслуживается Blazor. { «route»: «/api/ *» }

2. Спасибо за это, как вы это поняли ?!