Использование OAuth для среды разработки и производства

Я видел другие вопросы на SO об этом (Вот, Вот, а такжеВот), но я не удовлетворен ни одним из решений, поэтому я спрашиваю его снова. Я запускаю веб-приложение, которое будет использовать OAuth от нескольких провайдеров (Google, Facebook, Twitter, Yahoo) для аутентификации. Я изо всех сил пытаюсь найти конфигурацию, подходящую для использования как в локальной среде разработки, так и в производственной среде.

Основными решениями, которые я нашел, является регистрация нескольких приложений у каждого провайдера, получая разные потребительские ключи и секреты для каждого:

«My App Production» - с обратным URI дляhttp://www.myapp.com/callback

«Разработка моего приложения» - с обратным URI дляhttp://local.myapp.com/callback

Добавьте запись в ваш локальный файл hosts, чтобы указатьlocal.myapp.com в127.0.0.1 и какая-то конфигурация для вашего приложения, чтобы использовать правильные потребительские ключи в зависимости от среды, и вы готовы идти дальше, верно?

Но мое приложениеотзывчивый и мне нужно протестировать мою среду разработки, запущенную на моем ПК, с нескольких других устройств, таких как iPhone и iPad, ни одно из которых не сможет разрешить URI обратного вызова разработки.

Допустим, у меня уже есть DNS-сервер в моей сети, и я могу добавить запись дляlocal.myapp.com там вместо моего локального файла hosts и теперь могу получить доступ к моему экземпляру разработки с любого устройства в сети.

Но моя команда разработчиков работает в одной локальной сети. В настоящее времяlocal.myapp.com указывает на один и тот же IP для всех. Давайте вернемся к настройке файла hosts на компьютере каждого разработчика, чтобы они могли работать независимо от рабочей станции. Теперь никто не может снова протестировать свой экземпляр разработки со своего iPhone. Вряд ли для каждого разработчика правильным решением будет зарегистрировать приложение у провайдера, чтобы он мог указать уникальный URI обратного вызова.

Обычно, когда я зацикливаюсь на сложном решении по-видимому простой проблемы, это обычно означает, что я делаю что-то в корне неправильно. Я что-то упускаю из-за OAuth, разве он не предназначен для такого использования? Я испытываю искушение полностью отказаться от OAuth и просто использовать OpenID (регистрация приложения не требуется и могу указать URI обратного вызова из приложения), но затем я теряю двух самых популярных пользователей в Facebook и Twitter. Мне не нужны никакие данные пользователя, просто приятно иметь их, если они есть. Может кто-нибудь отговорить меня обратно в OAuth?

Ответы на вопрос(3)

Ваш ответ на вопрос