Как можно избежать обратных вызовов Oauth 2.0 на Android - PullRequest
2 голосов
/ 19 августа 2011

Подключаю приложение для Android к Rails Oauth 2.0 с помощью signpost lib. При каждом входе в систему приложение должно быть авторизовано через веб-браузер. Есть ли способ избежать?

1 Ответ

2 голосов
/ 19 августа 2011

Вы не говорите, но похоже, что вы не кешируете свой токен доступа и секрет.Если вы сохраните их в общем предпочтении и будете использовать их для подписи ваших запросов при следующем запуске приложения, вы сможете пропустить этап аутентификации и получить прямой доступ к ресурсам.


РЕДАКТИРОВАТЬ:

Спасибо за комментарий - после того как ваш пользователь прошел аутентификацию, вы можете либо ввести PIN-код в ваше приложение, которое вы затем обменяете на токен доступа и секрет, либо вы должны использовать начальный обратный вызов, который фактически просто отправляет PIN-коднепосредственно к вам без вмешательства пользователя.

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

Если вы вынуждены повторно авторизовывать свое приложение каждый раз, когда вы входите в систему (как ясно указывает ваш вопрос), тогда я могуувидеть четыре варианта:

  1. Фактически вы не кэшируете свой токен доступа должным образом (или он поврежден)
  2. Ваш токен становится недействительным вскоре после входа в систему (возможно, срок его действия очень короткий)
  3. Ваша реализация неправильно вводит вас на страницу входа в систему, когда на самом деле не требуется
  4. Ваша реализация неправильно запрашивает новый токен доступа (таким образоманнулирование предыдущего - у меня была конкретная ошибка, из-за которой я недолго останавливался в моем приложении)

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...