Я бы хотел, чтобы веб-сайт (Rails 3.1 с Devise и Omniauth) и мобильное приложение (iOS5) делились аутентификация. Под этим я подразумеваю, что я хотел бы, чтобы пользователь мог подключаться к сайту через SSI через Facebook или через SSI к мобильному приложению, а мобильное приложение могло взаимодействовать с API веб-сайта, используя учетные данные пользователя для аутентификации на веб-сайте.
В настоящее время у меня есть веб-часть, которая прекрасно работает, когда пользователь может подключиться к учетной записи через SSI. Еще у меня работает мобильное приложение, поддерживающее пользовательский SSI. Оба используют одно и то же приложение Facebook.
Моя проблема заключается в том, чтобы найти что-то общее для этих двоих, которое я могу использовать для мобильного приложения для аутентификации на сайте. Очевидно, оба имеют доступ к одному и тому же идентификатору пользователя, но это не кажется очень безопасным. В моем мобильном приложении есть токен доступа, но он отличается от токена доступа к веб-сайту, хотя они выглядят одинаково, и срок действия моего мобильного токена доступа истекает, а у моего токена веб-доступа нет.
Web / Rails Токен (не реальный):
DDDAKnu1dg40BDHEWN0VDssxs8GGF8ZBEEOb38HnS0IUEQC1NSufmPCcGeFkTuw39ZDl7OhlZBD2jwJEqXdAZCtZBflJRQKZB4ZA
Мобильный / IOS Токен (не реальная)
BDDAKnu1dg40BDEo3YjZD2hIwjfZB4slXJj3fmHfzLh5q1xZD0ShfJCb6PMjnApkpM0FTuGGvWnzZBQy4GZCMuysEEqhMz8YgruD53TXKTZC0GPFkfVe0b6fe8wieLLOZDDZA
С помощью маркера отладчика доступа на Facebook Я получаю следующее ( Все удаленные токены идентичны):
Для Web / Rails Token:
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
Для Mobile / 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