2

Моему веб-приложению нужен доступ к данным пользователей Google. Я решил использовать OAuth2. Проблема в том, что Google не принимает мою redirect_uri. Это локальный IP-адрес моего сервера в интрасети.Google OAuth2 для веб-приложения, расположенного за NAT (сервер интрасети без публичного IP-адреса)

В прошлом я использовал OpenID, который принял локальный redirect_uri. Как преодолеть эту проблему с помощью OAuth2?

Единственным решением, которое я нашел до сих пор, является использование redirect_uri=urn:ietf:wg:oauth:2.0:oob, но для этого требуется, чтобы пользователь скопировал вставку токена доступа. Есть ли лучшее решение?

ответ

1

Поскольку ваши пользователи всегда будут находиться в интрасети, вы можете использовать любое полное доменное имя, которое разрешает локальный IP-адрес либо через файл hosts на машине пользователя, либо на локальном DNS-сервере.

+0

Файл локальных хостов или локальный DNS-сервер не помогают. Google требует, чтобы OAuth2 предоставил redirect_uri через консоль разработчика. Но у меня нет действительного IP-адреса, так как нет открытого URI для моего веб-приложения, которое работает только в интрасети. – Witek

+0

уверен, что он делает: просто добавьте что-то вроде 'localhost.yourdomain.com', который разрешает ваш частный IP-адрес; Google не будет пытаться решить этот адрес, только ваши клиенты (браузеры пользователей). –

+0

Ганс прав. Общим недоразумением OAuth является то, что Google попытается вызвать URL-адрес перенаправления, но на самом деле он отправляет перенаправление http, если URL-адрес имеет смысл для браузера – pinoyyid