2013-07-13 6 views
4

Я ищу какую-то глубоко подробную информацию об использовании Google о OAuth прицеловЕсть ли глубокое погружение в области oauth2 в Google?

My Drive приложение является работает, так что я получаю простое использование областей. Однако у меня есть следующие подробные вопросы/вопросы.

  1. Я указываю области дважды. Однажды в моем приложении, а затем также в API Консоль. Какова соответствующая значимость этих двух областей деклараций?
  2. Если я удаляю области, должен ли мой пользователь повторно авторизировать мое приложение, или это требуется только для добавления дополнительных областей?
  3. Если ответ на вопрос 2: «Я не могу безшовно удалить области», будут ли библиотеки Google изящно разрешены с повторной авторизацией пользователя, или я просто получу 403 сбоя? Я прочитал How should an application add/remove scopes to an existing grant?, но в принятом ответе конкретно указаны с добавлением областей, в то время как мой вопрос касается удаления областей.
  4. Могут ли разные модули в моем приложении запрашивать различные области в пределах надстроек, указанных в консоли API? Чтобы объяснить, у моего приложения есть 3 компонентов: хром, расширяющий доступ к Диску, веб-клиент, использующий JS для доступа к Диску и YouTube (в режиме онлайн) и к серверу , который получает доступ к Диску (в автономном режиме).
  5. Могу ли мое приложение. узнать, какие области были предоставлены?

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

ответ

3

Список областей в коде клиента - это то, что пользователь разрешает ваше приложение делать

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

Список включенных услуг в консоли API - это то, что ваше приложение разрешает пользователям делать

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

Когда вызов API производится - вы отправляете вместе маркер доступа

Маркер доступа инкапсулирует пользователь делает запрос, области действия, пользователь уполномоченным вас, и идентификатор клиента, используемый для авторизации (который, в свою очередь, принадлежит вашему проекту). На этом этапе вам необходимо иметь службу, которую вызов API будет отправлен для включения в проект, и правильная область для запроса API - или вы получите 403.

Когда список необходимых областей изменения - вы должны ожидать, что пользователи должны повторно разрешить

В точке вы запрашиваете маркер доступа (как правило, путем отправки токена обновления), вы должны быть готовы к что просьба не преуспевать. Возможно, это потому, что вы добавили области - но, возможно, пользователь решил посетить https://accounts.google.com/IssuedAuthSubTokens и отменил доступ к вашим приложениям. Я не уверен, что если вы запросите меньше областей, чем было предоставлено пользователем, изначально это вызовет это, я бы экспериментировал, чтобы проверить - но дело в том, что, несмотря на то, что ваш код должен справиться с этим сценарием. Я считаю, что OAuth2DecoratorFromClientSecrets (из связанного вопроса) будет обрабатывать это изящно для вас, но я не уверен - это должно быть достаточно легко проверить.

Используя то же разрешение на нескольких клиентов - предлагает прочитать через этот документ и посмотреть, если он охватывает все ваши сценарии: https://developers.google.com/accounts/docs/CrossClientAuth

Чтобы увидеть области, предоставленных маркер доступ - использовать API OAuth2: https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=yaxxxxxxxxxxxxxxx

+0

много thx для ответа. В разделе «Насколько я знаю, нет списка областей, указанных в консоли API». Если вы посмотрите https://code.google.com/apis/console/?pli=1#project:9999999999999:drive_sdk, вы увидите поля «Дополнительные области применения. Внесите URL-адреса области OAuth 2.0 для любого API Google, к которому вы хотите, чтобы ваше приложение обращалось». Это то, что меня смущает. – pinoyyid

+0

К сожалению, ваше предложение «Я не уверен, что если вы запросите меньше областей, чем предоставил пользователь, изначально это вызовет это, я бы экспериментировал, чтобы проверить« не помогает ». Проблема в том, что, если поведение не подтверждено и не подтверждено Google, оно может неожиданно измениться, что может привести к нарушению моего приложения. – pinoyyid

+0

Что касается списка областей видимости, то это относится к SDK накопителя и представляет собой список областей, которые диск будет запрашивать от имени вашего приложения, когда он интегрирован с интерфейсом Диска, см. Http://stackoverflow.com/questions/12763128/ who-drive-initial-authorization Относительно поведения, когда запрашивается меньшее количество областей - точка, которую я пытаюсь сделать, заключается в том, что вы должны иметь возможность обрабатывать необходимость получения новой авторизации * в любом случае * (поскольку пользователь может отменить доступ к вашим приложениям через страницу своей учетной записи) - поэтому независимо от поведения это не должно быть новым случаем сбоя для вашего приложения. – aeijdenberg

 Смежные вопросы

  • Нет связанных вопросов^_^