Общий токен доступа Facebook между сайтом и мобильным приложением - PullRequest
8 голосов
/ 01 марта 2012

Мне нужен веб-сайт (Rails 3.1 с Devise и Omniauth) и мобильное приложение (iOS5) для обмена аутентификацией.Под этим я подразумеваю, что я хотел бы, чтобы пользователь имел возможность использовать SSI для сайта с Facebook или SSI для мобильного приложения и иметь мобильное приложение для связи с API веб-сайта, используя учетные данные пользователя для аутентификации на сайте.

В настоящее время у меня хорошо работает веб-сторона, и пользователь может использовать SSI для учетной записи.У меня также работает мобильное приложение, поддерживающее пользовательский SSI.Оба используют одно и то же приложение Facebook.

Моя проблема заключается в нахождении чего-то общего между двумя, которые я могу использовать для приложения Mobile для аутентификации на сайте.Очевидно, что оба имеют доступ к одному и тому же идентификатору пользователя, но это не кажется очень безопасным.У моего мобильного приложения есть токен доступа, но он отличается от токена доступа к веб-сайту, хотя они выглядят аналогично, и мой токен мобильного доступа истекает, а мой токен веб-доступа нет.

Web / Rails Token (не реально):

DDDAKnu1dg40BDHEWN0VDssxs8GGF8ZBEEOb38HnS0IUEQC1NSufmPCcGeFkTuw39ZDl7OhlZBD2jwJEqXdAZCtZBflJRQKZB4ZA

Мобильный / IOS Токен (не реальный)

BDDAKnu1dg40BDEo3YjZD2hIwjfZB4slXJj3fmHfzLh5q1xZD0ShfJCb6PMjnApkpM0FTuGGvWnzZBQy4GZCMuysEEqhMz8YgruD53TXKTZC0GPFkfVe0b6fe8wieLLOZDDZA

Использование Facebook в отладчик токенов доступа Я получаю следующее (все удаленные идентификаторы одинаковы для токенов):

Для токенов Web / Rails:

App ID: 
XXXXXXXXXXXXXXXX : SomeAppName
User ID:    
XXXXXXXX : My Name
Issued: 
1327507734 : 8:08 am Jan 25 2012
Expires:    
Never
Valid:  True
Origin: Web
Scopes: email offline_access

Для мобильных устройств / iOS:

App ID: 
XXXXXXXXXXXXXXXX : SomeAppName
Metadata:   {"sso":"iphone-safari"}
User ID:    
XXXXXXXX : My Name
Issued: 
1327507734 : 8:08 am Jan 25 2012
Expires:    
Never
Valid:  True
Origin: Native Mobile
Scopes: email offline_access

Ответы [ 3 ]

4 голосов
/ 23 апреля 2012

Просто для записи, способ, которым я в конечном итоге обработал это, состоит в том, чтобы передать мобильный токен на сервер и заставить сервер проверять подлинность токена.Как только это подтвердится, я могу проверить подлинность по моим записям, используя uid и электронную почту.

1 голос
/ 26 марта 2012

Вы должны сделать небольшие изменения в Facebook API, в авторизации, изменить с

[self authorizeWithFBAppAuth:YES safariAuth:YES];

Для

[self authorizeWithFBAppAuth:NO safariAuth:NO];

Поскольку иногда возникает проблема с токеном, когда вы хотите авторизоваться через fbApp или Safari. У меня была такая же проблема, из-за этого токен в моих веб-сервисах был другим.

0 голосов
/ 24 февраля 2013

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

...