Как я могу аутентифицироваться в веб-сервисе моих приложений после использования единого входа Facebook на Android? - PullRequest
13 голосов
/ 24 февраля 2011

Я создаю приложение для Android, которое использует единый вход Facebook для входа в систему, и я не уверен, как проходить аутентификацию с помощью своих собственных веб-сервисов после входа в FB.Когда пользователь впервые открывает мое приложение, он входит в Facebook, авторизует мое приложение, получает некоторые привилегии и продолжает входить в мое приложение.Эта часть прекрасно работает, но теперь, чтобы использовать мое приложение, им нужно создать учетную запись на моем сервере и поговорить с моими веб-сервисами.

Прямо сейчас у меня есть вызов к аутентификационному веб-сервису на моем сервере, который добавляет их идентификатор Facebook и другую основную информацию в базу данных и в то же время выполняет обмен ключами Диффи-Хеллмана, чтобы любые будущие вызовы к веб-сервисам моглибыть зашифрован общим ключом.Но проблема в том, что самый первый первоначальный вызов для создания этой учетной записи и создания этого общего ключа, как мне это подтвердить?Откуда мне знать, что этот человек действительно является тем, кто только что прошел аутентификацию в Facebook, а не просто тем, кто нашел URL-адрес моего веб-сервиса и создает учетные записи и сохраняет ключи?

Ответы [ 2 ]

9 голосов
/ 25 февраля 2011

Facebook SSO возвращает токен доступа.Если вы хотите, вы можете передать это на свой сервер, и ваш сервер может позвонить API-интерфейсам Facebook, чтобы проверить, является ли он токеном доступа для этого пользователя (например, позвонив по номеру https://graph.facebook.com/me?access_token=ACCESS_TOKEN) - если онвы хороши и убедились, что пользователь является тем, кем, по его словам, является (или является хакером с достаточным доступом, чтобы иметь действительный токен авторизации для вашего приложения для Facebook, после чего его личность была скомпрометирована на стороне Facebook).

1 голос
/ 24 февраля 2011

Я думаю, что вы должны передать пароль вместе с вашей основной информацией при создании профиля. В общем, единый вход в Facebook дает вашему клиентскому приложению только право доступа к профилю пользователя, но он не гарантирует вашим веб-службам, что вызывающий абонент является действительным владельцем этой учетной записи FB. Я боюсь, что последующие вызовы от клиента Android к веб-службе должны проходить проверку подлинности с помощью обычного пароля пользователя / имени (отличного от учетной записи FB), если вы хотите быть уверены, что вызывающим является тот, кто первым получил ключ время (независимо от того, с каким профилем Facebook он может быть связан).

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