2013-05-10 3 views
3

Мне нужно взаимодействовать с API, который поддерживает только OAuth2.OAuth для приложений на стороне сервера

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

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

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

Мое понимание здесь правильно, так как это кажется очень неуклюжим?

В частности:

Могу ли я избежать реализации процесса, в котором мы ссылаемся к поставщикам приложений логин форму?

Правильно ли, что после этого я должен освободить токен доступа и сохранить его в своем приложении на стороне сервера. Кажется, я не могу контролировать, истекает ли это?

Я вижу, что, например, Facebook специально поддерживает поток на стороне сервера и клиента. Интересно, встал ли я против ограничений в этой конкретной реализации OAuth 2?

+0

Ваш вопрос не очень ясен. Не могли бы вы добавить более подробную информацию о том, что вам действительно нужно? Вы пытаетесь понять поток OAuth 2? – divyanshm

+0

Добавил несколько конкретных вопросов.Я понимаю поток, но он, похоже, предназначен для взаимодействия с пользователем, выполняемого пользователем, тогда как я ищу интеграцию через OAuth 2 в приложении без гарнитуры. –

ответ

2

Я обнаружил, что типичным решением проблемы, которую я задал в этом вопросе, является использование XAuth.

Многие провайдеры, такие как Twitter и приложение, с которыми я сейчас работаю, поддерживают XAuth, чтобы обеспечить упрощенный поток без аутентификации на основе интерфейса пользователя.

What is the difference among BasicAuth,OAuth and XAuth?

+0

Ох, спасибо Бенджамин за то, что поделился этой ссылкой! Думаю, мне тоже нужно обновить. – divyanshm

2

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

После аутентификации и авторизации (есть много открытых вопросов о SO, об автоматической аутентификации), ваше приложение получит не только токен доступа, но и токен обновления . Обновленный токен - это то, что вам нужно в вашем случае использования. Вы можете сохранить его на стороне сервера. Ток обновления не имеет срока действия. Он живет до тех пор, пока пользователь явно не аннулирует разрешения.

Для любого поставщика услуг OAuth существует конечная точка обмена токенами, в которой вы можете обменять токен обновления для пары (обновить токен + токен). Таким образом, на бэкэнд (ваш сервер) вы можете в любой момент ударить по этой конечной точке - получить токен с краткосрочным доступом и выполнить операцию, в которой вы нуждаетесь. Это сэкономит вам все усилия, связанные с ежедневным графическим потоком.

Смотрите эту ссылку - https://developers.google.com/accounts/docs/OAuth2WebServer#offline

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

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