LinkedIn / Twitter / Facebook как OAuth и OpenId используют - PullRequest
14 голосов
/ 30 марта 2010

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

Я хочу разрешить пользователям входить на мой сайт через свою учетную запись LinkedIn / Twitter / Facebook после входа, скажем, через LinkedIn, они также могут авторизовать свою учетную запись Twitter и Facebook в качестве дополнительного метода входа. Это позволило бы пользователю проходить проверку подлинности с помощью любого из трех, но в конечном итоге его учетная запись на моем сайте стала конечным результатом.

Я также хочу использовать предоставленную ими авторизацию для получения основных сведений о пользователе (изображение профиля / имя и т. Д.) И публикации обновлений статуса.

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

Есть идеи или проблемы по этому вопросу?

Ответы [ 3 ]

10 голосов
/ 19 апреля 2010

Если вы используете ASP.NET MVC, DotNetOpenAuth является отличным решением для поддержки сайтов OpenID / OAuth. StackOverflow использует его, и они довольно разборчивы в отношении кода, который они используют на сайте.

Интеграция OpenID с DotNetOpenAuth довольно проста. Я не пробовал OAuth, но не ожидаю, что он будет менее качественным.

К сожалению, Facebook не поддерживает OpenID / OAuth, поэтому вам нужно использовать другое решение для него. Я использую Инструментарий разработчика Facebook Clarity Consulting . Это работает, хотя у меня есть определенные претензии к качеству кода; к сожалению, я не нашел ничего лучшего. (Примечание: если кто-нибудь знает лучшую альтернативу, обязательно сообщите мне)

Базовая интеграция Facebook Connect с инструментарием разработчика Facebook также относительно проста. Тем не менее, их объектная модель несколько испорчена из-за их попытки оставаться как можно ближе к API Facebook, поэтому шаблоны HTTP API сильно просачиваются. Тем не менее, это делает работу.

Обновление: Теперь, когда Facebook объявил, что будет поддерживать OAuth 2.0, DotNetOpenAuth может оказаться лучшим решением.

2 голосов
/ 14 апреля 2010

Вы смотрели в RPX?

https://rpxnow.com/

0 голосов
/ 15 апреля 2010

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

Боюсь, вам придется подключать учетную запись пользователя к каждой из 3 служб в отдельности. Какую платформу вы используете для создания своего приложения? Если это Ruby, то драгоценный камень типа OmniAuth выглядит многообещающе.

...