Следующее основано на Рабочий процесс , предоставленный hueniverse:
Пользователь нажимает на логин через Twitter.
Digg запрашивает у Twitter токен запроса (не для конкретного пользователя, может использоваться Digg для получения одобрения пользователя от пользователя для доступа к информации пользователя ).
Digg получает маркер запроса и перенаправляет пользователя на URL-адрес авторизации пользователя Twitter OAuth с помощью RequestToekn и просит Twitter перенаправить пользователя обратно после получения подтверждения.
OAuth требует, чтобы поставщики услуг (Twitter) сначала аутентифицировали пользователя, а затем попросили предоставить ему доступ к потребителю (Digg).
Пользователь вводит имя пользователя и пароль (если Пользователь не вошел в систему).
Twitter информирует пользователя о том, кто запрашивает доступ (Digg), и о типе предоставляемого доступа. (Я не знаком с Digg, поэтому возьмем Stack Exchange в качестве другого примера, он только запрашивает доступ к имени пользователя.)
Пользователь утверждает.
Twitter помечает маркер запроса как авторизованный пользователем. Пользователь браузер перенаправлен обратно на Digg.
Digg использует авторизованный токен запроса и обменивает его на токен доступа (используется для доступа к защищенным ресурсам. В случае Stack Exchange - имя пользователя, хотя звучит немного странно).
Digg авторизован через Twitter.
Вот неофициальная фотография, сделанная мной:
Выше приведено в Официальном руководстве к OAuth 1.0, но согласно Представляем OAuth 2.0 :
OAuth 2.0 является совершенно новым протоколом и не имеет обратной совместимости с предыдущими версиями. Тем не менее, он сохраняет общую архитектуру и подход, установленные предыдущими версиями, и то же самое введение (из Официального руководства к OAuth 1.0) все еще очень применимо.