Мне нужна ваша помощь, чтобы решить проблему с OAuth в приложении MVC5.В моей среде разработки все хорошо.Я настроил провайдеров Twitter / Google / Facebook / Microsoft, и на данный момент это работает как чудо.
Моя проблема связана с тестовой средой.Я использую nGinx в качестве внешнего сервера для хранения сертификатов и подачи статического содержимого через подкаталог домена.Прокси-часть настроена следующим образом:
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
Проблема заключается в том, что все мои настроенные URL-адреса обратного вызова для внешних поставщиков работают по схеме HTTPS, но при запуске приложения по HTTP URL-адрес обратного вызова имеет протокол HTTP (дляНапример, авторизованный URL обратного вызова - https://example.com/signin-facebook, но эффективный URL обратного вызова, отправленный поставщику, - http://example.com/signin-facebook).
. В других сообщениях я видел, что есть решение AspNetCore с UseForwardedHeaders, но я до сих порв обычной AspNet это не вариант.
В качестве грязного обходного пути я временно разрешил URL-адреса с протоколом HTTP в качестве URL-адресов обратного вызова для Twitter / Facebook и Google, но Microsoft строгая и разрешает только HTTPS (этот обходной путь работает, потому чтоМой nGinx настроен на выполнение перенаправления 301 для входящих HTTP-запросов на тот же запрос через HTTPS)
У кого-нибудь есть решение изменить схему базового URL-адреса, используемого для создания URL-адреса обратного вызова?