Аутентификация OpenSocial из внешнего приложения - PullRequest
4 голосов
/ 22 октября 2009

Я работаю над веб-проектом, который принципиально не отличается от power.com , где я пытаюсь объединить несколько разных социальных сетей в рамках одного веб-сайта, чтобы пользователи могли зарегистрируйтесь один раз в системе, а затем добавьте столько своих учетных записей социальных сетей (Facebook, MySpace, Orkut и т. д.), сколько система предназначена для обработки, что позволяет им просматривать информацию о своем профиле в одном месте.

Проще говоря, я не могу найти способ аутентификации произвольных пользователей в их учетных записях в социальных сетях.

Я изучал спецификации OpenSocial, а также проект клиента PHP * OpenSocial , но мне, кажется, что-то не хватает, так как все выглядит циклически зависимым.

Моя первая проблема заключается в том, что для целей тестирования у меня есть потребительский ключ MySpace и его потребительский секрет, но всякий раз, когда я пытаюсь выполнить трехстороннюю аутентификацию с MySpace, нет возможности войти в систему как кто-то еще . Кроме того, он выполняет внешнее перенаправление, что несколько нежелательно (как пользователь этого возможного «портала» социальных сетей, я бы не хотел проходить этот процесс перенаправления каждый раз, когда добавляю новую учетную запись).

Как мне программно аутентифицировать произвольного пользователя и предоставить ему доступ к информации его учетной записи (предпочтительно без внешнего перенаправления)?

Во-вторых, для двухсторонней аутентификации требуется userId (обычно произвольное целое число), которое идентифицирует произвольного пользователя, для которого требуется получить информацию. Однако, когда я ввожу свой MySpace OpenSocial ID вместе с указанным ключом потребителя и секретом потребителя, я получаю ошибку 401 «Доступ запрещен». Кроме того, чтобы использовать этот идентификатор в будущем, мне кажется, что сначала мне нужно будет аутентифицировать пользователя ... но эта аутентификация требует идентификатора.

Я довольно убежден, что мне не хватает чего-то тривиального, но по жизни я не могу понять, что это такое. Помощь очень ценится!

Ответы [ 2 ]

5 голосов
/ 26 октября 2009

Технически это не мой ответ, но разработчики в OpenSocial предоставили мне следующую информацию относительно моего вопроса (выделено мое):

Трехсторонний OAuth построен вокруг перенаправить обратно на сайт вы проверка подлинности с, и нет способ избежать этого. Это не самый удобный опыт, но позволяет пользователи делятся своими данными с вашими сайт, сохраняя свои пароли частный. Любой дизайн, который требует пользователи, чтобы ввести свой пароль MySpace в форму на вашем сайте считается анти-паттерном и должен следует избегать. Вы могли бы потенциально попытаться перенаправить во всплывающем окне чтобы сделать опыт немного меньше тряски для пользователя (в настоящее время PHP-клиент не делает это легко, но если вы продолжили в opensocial-client-libraries@googlegroups.com кто-то может помочь вам проработать этот процесс).

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

Что касается двуногих, вам потребуется иметь приложение, связанное с ключ / секретный ключ пользователя, установленный на профиль любого пользователя, данные которого вы хотите получить доступ. Двуногий в основном предназначен для разработчиков, которые в настоящее время работает социальный гаджет на контейнер и хотите получить доступ к социальным данные для пользователей их приложений из группы с гаджетом рендеринга. В этом В этом случае сервер приложений будет уже есть OpenSocial ID пользователя (из подписанного makeRequest) и пользователь уже будет иметь приложение установлено в их профиле MySpace).

Большая часть этого покрыта в http://wiki.opensocial.org/index.php?title=OAuth_Use_Casesif Вы хотите больше информации.

По сути, это делает невозможным любое использование двухсторонней аутентификации во внешнем приложении; Двуногий был явно разработан, чтобы не использоваться в такой ситуации. Более того, кажется, что power.com действительно использует анти-паттерн, когда пользователи предоставляют свои действительные учетные данные Orkut / MySpace / etc, что объясняет этот бит.

Очистка моих файлов cookie работала для проверки подлинности меня через MySpace. Однако я задал еще один вопрос о том, как будет работать аутентификация Orkut, поскольку она не поддерживает трехстороннюю аутентификацию. Вот ответ, который я получил:

Orkut заинтересован в поддержке это , так что вы сможете разрешить пользователям поделиться своей информацией с вашим приложение "правильно" в будущем.

Соответствующее двуногое приложение необходимо переслать текущего зрителя OpenSocial ID обратно на ваш сервер, наверное вместе с авторизацией маркер вы генерируете сами так вы можете связать сеанс пользователя в orkut с сеансом на вашем собственном сервере. Честно говоря, это, вероятно, не для использования достаточно для поддержки автономного входа система.

По сути, нет, Orkut действительно нельзя подключить к внешнему приложению (по крайней мере, пока) без использования анти-паттерна.

Если у кого-либо есть дополнительная информация по этой теме, пожалуйста, не стесняйтесь поделиться!

0 голосов
/ 29 октября 2009

Здесь также упоминается шаблон http://sites.google.com/site/oauthgoog/2leggedoauth/2opensocialrestapi

По сути, многие гибридные приложения захотят эту функцию:

Сторонний сайт, который НЕ имеет гаджет хочет получить конечных пользователей разрешение на доступ к своим данным на социальная сеть, например скачать список друзей или получить разрешение размещать в своей деятельности поток

...