Статьи

Как Twitter oAuth работает в контексте сценария

twitter-oAuth-process-gliffy

Сценарий «Мистер Твиттер»

Представьте, что аутентификация в Твиттере означает, что вы спрашиваете мистера Оута, как добраться до дома мистера Твиттерса . Mr oAuth может дать вам указания, только если у вас есть разрешение от Mr Twitter . Кроме того, г-н OAuth очень забывчивый и просит вас позвонить г-ну Twitter, чтобы спросить дорогу. Вы должны позвонить г-ну Twitter, чтобы спросить дорогу. Он просит вас оставить свой номер, и он свяжется с вами. Он возвращается к вам с указаниями, и вы идете туда. Вы стучите в дверь, затем мистер Твиттер отвечает и просит у вас пароль, затем он дает вам ключ и затем закрывает дверь. Теперь вы должны использовать ключ, чтобы открыть дверь, и пока дверь открыта, вы можете входить и выходить сколько угодно. Дверь закрывается на замок, поэтому, если вы закрываете дверь, вы должны снова использовать ключ, чтобы открыть дверь. Если вы потеряете ключ или мистер Твиттер заберет у вас ключ, вы должны снова постучать в дверь и попросить ключ.

Ok. Итак, давайте рассмотрим это в данном случае: в этом сценарии Mr oAuth — это PHP Twitter Library для oAuth , Mr Twitter — приложение Twitter , ключом является токен доступа, а за дверью — Twitter REST API , Mr Twitter’s House. Поэтому для безопасного доступа к API REST Twitter мы должны:

1. Получение разрешения спрашивать дорогу к дому мистера Твиттерса.

Этот шаг включает в себя создание приложения разработчика Twitter для получения ключа потребителя и секрета потребителя (разрешение запрашивать указания) (Вы также должны установить уровень доступа: Чтение и запись, если вы хотите публиковать твиты, а также получать информацию о пользователе).

twitter-access-tokens-settings

2. Спрашивать у мистера OAuth, как добраться до дома мистера Твиттерса.

Используя два ключа разработчика, вы можете получить URL авторизации из библиотеки oAuth (номер телефона мистера Твиттерса). Затем вы должны перенаправить на URL с вашим токеном запроса (позвоните в Mr Twitter). Вы можете указать URL-адрес обратного вызова или использовать обратный вызов, указанный в настройках приложения разработчика (один из них должен быть установлен для того, чтобы Mr Twitter перезвонил вам с указаниями). Затем Twitter API будет использовать обратный вызов и вышлет вам токен проверки .

set-callback-url

3. Стук в дверь мистера Твиттерса.

Используя свой токен подтверждения, вы можете запросить токен доступа (постучав в дверь, мистер Твиттер ответит и примет ваш код проверки и вручит вам ключ, затем он закроет дверь).

4. Используя ключ, чтобы открыть дверь.

Мы можем использовать токен доступа для запроса Twitter REST API . Также может быть удобно хранить токен доступа в переменных сеанса PHP (представьте, что дверь открыта как сессия, и если сессия заканчивается, дверь закрывается, и вы должны снова использовать ключ, чтобы открыть новую сессию). Теперь мы можем безопасно делать такие вещи, как публикация твитов или получение информации о пользователях.

authenticate-with-twitter

Некоторые дальнейшие мысли

Мистер Твиттер забирает ключ — Если пользователь «аннулирует» доступ к приложению, вы должны вернуться и снова запросить разрешение.

twitter-app-authenticated-revoke-access

Экономия времени путем сохранения направлений в переменных сеанса (потеря ключа). Если пользователь очищает свой сеанс (теряет ключ), то мы должны запросить новые токены доступа.

Экономия времени путем записи инструкций. Мы можем хранить токены oAuth в базе данных, чтобы их можно было повторно использовать для генерации новых токенов доступа (таким образом, избегая запроса шагов разрешения).

twitter-auth-database-details