Использование OAuth stackexchange для входа в мобильное приложение

Использование OAuth stackexchange для входа в мобильное приложение

28.01.2013 02:47:14 Просмотров 53 Источник

Я делаю гибридное приложение на Android на основе API StackExchange. Мне нужно предоставить функцию входа в него. Я выполняю шаги, описанные в их JS SDK http://api.stackexchange.com/docs/js-lib . я могу получить SE.init выполняется успешно, однако SE.аутентификация дает ошибку типа "неожиданный домен на URL прокси". Теперь url-адрес моего приложения имеет localhost: 8080 в своем домене, который я указал в свойстве channelUrl SE.в этом. Даже если я запускаю его на android-устройстве, его домен похож на file:///data/data... что-то вроде того. Так как же мне обойти это?

В этом процессе, когда мой браузер запускается после нажатия на вход в мое приложение, я вижу различные варианты входа в систему stackexchange, такие как вход через google, facebook и т. д. Но проблема, которую я описал выше, происходит после того, как я нажимаю, скажем, google, чтобы войти в систему. поэтому он пытается перенаправить, и он обнаруживает, что я указал домен localhost в channelUrl в SE.в этом

У вопроса есть решение - Посмотреть?

Ответы - Использование OAuth stackexchange для входа в мобильное приложение / Using stackexchange's OAuth for logging into mobile app

Является ответом!
Prahalad Deshpande

17.08.2013 10:09:55

У меня была аналогичная проблема, поэтому я поделюсь своими выводами с надеждой, что это будет полезно вам или кому-то еще, занимающемуся той же проблемой.

Во-первых, зарегистрированный домен для вашего приложения должен соответствовать домену, указанному в channelUrl. Здесь важно отметить, что следующие Домены не считаются одинаковыми:

`example.domain.com` and `example.domain.com:8080`. 

Многие браузеры будут рассматривать это как междоменный пост, и, следовательно, вы можете в конечном итоге получить следующие ошибки:

Не могу разместить сообщение example.domain.com. Получатель примере происхождения.домен.ком:8080

Это делается для предотвращения атак межсайтовых сценариев.

Что сработало для меня? : Я понял,что было бы очень больно иметь дело с особенностями материала localhost. Поэтому я зарегистрировал свое приложение на облачном хостинге, таком как Heroku ( вы можете выбрать любой из доступных, я выбрал Heroku для быстрой и беспроблемной регистрации для начинающих и хорошего набора инструментов.). Сообщение о том, что мой домен теперь myapp.herokuapp.com . один раз я указываю это в домене OAuth для приложения StackExchange и изменяю параметр channelUrl, чтобы он содержал myapp.heroku.com/blank.html , все это начало работать, и теперь я могу извлекать данные с помощью API StackExchange.

Я публикую ссылку на мое обсуждение с людьми поддержки StackExchange, которые помогли мне прийти к этому решению.

Надеюсь, это укажет вам на решение.

https://stackoverflow.com/questions/14560305/using-stackexchanges-oauth-for-logging-into-mobile-app/18285728#comment26826863_18285728
Это отличный вклад! Позже я тоже нашел решение для этого, хотя я не помню его прямо сейчас, я посмотрю в свой код и вернусь сюда через несколько дней. Вероятно, я тоже придерживался подобного подхода.
Закрыть X