Моему веб-приложению нужен доступ к данным пользователей Google. Я решил использовать OAuth2. Проблема в том, что Google не принимает мою redirect_uri. Это локальный IP-адрес моего сервера в интрасети.Google OAuth2 для веб-приложения, расположенного за NAT (сервер интрасети без публичного IP-адреса)
В прошлом я использовал OpenID, который принял локальный redirect_uri. Как преодолеть эту проблему с помощью OAuth2?
Единственным решением, которое я нашел до сих пор, является использование redirect_uri=urn:ietf:wg:oauth:2.0:oob
, но для этого требуется, чтобы пользователь скопировал вставку токена доступа. Есть ли лучшее решение?
Файл локальных хостов или локальный DNS-сервер не помогают. Google требует, чтобы OAuth2 предоставил redirect_uri через консоль разработчика. Но у меня нет действительного IP-адреса, так как нет открытого URI для моего веб-приложения, которое работает только в интрасети. – Witek
уверен, что он делает: просто добавьте что-то вроде 'localhost.yourdomain.com', который разрешает ваш частный IP-адрес; Google не будет пытаться решить этот адрес, только ваши клиенты (браузеры пользователей). –
Ганс прав. Общим недоразумением OAuth является то, что Google попытается вызвать URL-адрес перенаправления, но на самом деле он отправляет перенаправление http, если URL-адрес имеет смысл для браузера – pinoyyid