Ответ 1
Вы изучали RPX?
Во-первых, я понимаю, что OpenId предназначен для аутентификации, а OAuth для авторизации, и в отличие от других вопросов на сайте, я не спрашиваю, для чего следует использовать, но может ли кто-нибудь посоветовать решение для моей проблемы.
Я хочу разрешить пользователям входить на мой сайт через свою учетную запись LinkedIn/Twitter/Facebook после входа в систему через LinkedIn, они также могут авторизовать свою учетную запись Twitter и Facebook в качестве дополнительного метода входа. Это позволит пользователю пройти аутентификацию через любой из трех, но в конечном итоге их учетная запись пользователя на моем сайте станет конечным результатом.
Я также хочу использовать предоставленную им авторизацию, чтобы получить основные данные пользователя (профиль pic/name и т.д.) и опубликовать обновления статуса.
Я не хочу просить пользователя войти в свою учетную запись через openId, а затем снова авторизовать ту же учетную запись через oauth, чтобы мой сайт мог публиковать их в своем фиде услуг и должен сделать это для каждого из трех сервисов.
Любые идеи или проблемы в этой проблеме?
Вы изучали RPX?
Если вы используете ASP.NET MVC, DotNetOpenAuth - отличное решение для поддержки сайтов OpenID/OAuth. StackOverflow использует его, и они довольно разборчивы для кода, который они используют на сайте.
Интеграция, если OpenID с DotNetOpenAuth довольно прост. Я не пробовал OAuth, но я не ожидаю, что это будет менее качественным.
К сожалению, Facebook не поддерживает OpenID/OAuth, поэтому вам нужно использовать другое решение для него. Я использую Clarity Consulting Facebook Developer Toolkit. Он работает, хотя у меня есть некоторые жалобы на качество кода; К сожалению, я еще ничего не нашел. (Примечание: если кто-то знает лучшую альтернативу, непременно сообщите мне)
Базовая интеграция Facebook Connect с Facebook Developer Toolkit также относительно проста. Тем не менее, их объектная модель несколько испорчена из-за их попытки оставаться как можно ближе к API-интерфейсам Facebook, поэтому шаблоны API-протокола HTTP многократно истекают кровью. Тем не менее, это делает работу.
Обновление: Теперь, когда Facebook объявил, что они будут поддерживать OAuth 2.0, DotNetOpenAuth может оказаться лучшим решением.
Я не хочу просить пользователя войти в свою учетную запись через openId, а затем снова авторизовать ту же учетную запись через oauth, чтобы мой сайт мог публиковать их в своем фиде услуг и должен сделать это для каждого из трех сервисов.
Я боюсь, вам придется подключать учетную запись пользователя к каждой из трех служб по отдельности. Какую платформу вы используете для создания своего приложения? Если это Ruby, то драгоценный камень, подобный OmniAuth, выглядит многообещающим.