Facebook Connect для аутентификации на персональном API - PullRequest
7 голосов
/ 27 января 2011

Я разработал простой API-интерфейс, позволяющий устанавливать связь между приложениями для Android / iPhone и моим сервером. В моем приложении пользователи должны аутентифицировать себя, и они делают это, используя учетные данные логина / пароля со следующим вызовом API:

http://api.myapp.com/login?user=xxx&pass=pass

Приложение получает взамен:

{ "api_token": "xxxx-xxxx-xxxx-xxxx" }

Так что в основном я обмениваю свои учетные данные на api_token.

Я бы хотел добавить поддержку Facebook connect. Я успешно использовал SDK Facebook и получил правильный access_token.

Однако мне нужно реализовать механизм обмена access_token с api_token

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

Ответы [ 2 ]

5 голосов
/ 02 февраля 2012

Вот как я наконец это сделал.Он работает очень хорошо в течение более одного года, никогда не было никаких проблем.Идея состоит в том, чтобы обменять токены с помощью следующего вызова API:

http://api.myapp.com/login/facebook?access_token=<facebook_access_token>

На стороне сервера вы проверяете действительность access_token с помощью простого

wget -qO- https://graph.facebook.com/me?access_token=<facebook_access_token>

, который отправляет вам обратно JSONсо всей информацией пользователя, включая идентификатор пользователя Facebook.Предполагая, что пользователь уже подключил свою учетную запись к Facebook, вы можете найти user_id и отправить обратно api_token.

0 голосов
/ 14 октября 2011

http://developers.facebook.com/docs/authentication/

Лучшая реализация, естественно, будет зависеть от вашей текущей платформы.Например, существует несколько гемов Ruby on Rails, которые обрабатывают весь бит открытой аутентификации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...