Я использую Google для аутентификации пользователей через OAuth2. Сайт построен в Angular 5 и размещен в службе приложений Azure (IIS). Когда Google аутентифицирует пользователя, он отправляет обратно URL, который содержит несколько URI:
https://domain.azurewebsites.net/membership/oauth2?code=<authentication code>&scope=openid%20email%20https://www.googleapis.com/auth/plus.me%20https://www.googleapis.com/auth/userinfo.email
.
Как видите, после &scope
есть 2 URI. веб-сайты Azure возвращают ошибку, указывающую, что
Ресурс, который вы ищете, был удален, изменилось его имя или временно недоступен.
Если я уберу строку запроса с &scope
, она будет работать нормально.
Я попытался удалить эту часть в web.config с помощью правила перезаписи:
<rule name="Remove paging parameters" stopProcessing="true">
<match url="^(.*)\/membership\/oauth2(.*)$" />
<conditions trackAllCaptures="true">
<add input="{QUERY_STRING}" pattern="^(.*)(scope=.+)(.*)$" />
</conditions>
<action type="Redirect" url="{C:1}{C:3}" appendQueryString="false" />
</rule>
Однако ничего не происходит. Любая помощь будет принята с благодарностью.
Стороннее замечание: в localhost все работает нормально, так как это nodejs, который обслуживает сайт Angular. Проблема возникает в службе приложений Azure, так как она обслуживается IIS.