Как привязать пользователя, авторизованного сторонним поставщиком через ACAccountStore, к объекту внутреннего пользователя в облаке?

В общем, как лучше всего аутентифицировать пользователя через третью сторону (скажем, Twitter) с помощью ACAccountStore iOS, а затем привязать его к существующему пользователю в моей собственной службе, предполагая, что они уже вошли в систему? Могу ли я получить доступ и сохранить учетные данные удаленно через ssl, или есть лучший способ?

И если бы им пришлось повторно войти в систему через Twitter, я мог бы просто найти пользователя с этим дескриптором Twitter, чтобы узнать, какой бэкэнд-пользователь привязан к этой учетной записи, да?

И, наконец, если бы я хотел позже войти в систему через браузер, я бы также получил новые учетные данные oauth для веб-приложения, но мог бы искать пользователя с той же информацией учетной записи Twitter и хранить эти учетные данные, а также знать, что все они относятся к одному и тому же человеку, верно?


person qix    schedule 23.07.2013    source источник


Ответы (1)


То, о чем вы спрашиваете, включает в себя множество уровней системного «стека», которые настраиваются для конкретной среды. Что такое «правильно» или «неправильно», зависит от среды, которую вы настроили и к которой подключаетесь из своего приложения iOS.

Итак, судя по тому, что вы используете функциональность Twitter в iOS для создания единого входа (SSO). На сайте Twitter есть несколько руководств по тому, чего вы хотите достичь:

person Matt S.    schedule 23.07.2013
comment
Не все провайдеры будут одинаковыми — я не знаю, допускает ли Facebook такие вещи. Кроме того, в настоящее время Facebook и Twitter глубоко интегрированы в iOS. В качестве примера другой сети, поддерживающей SSO, Google+ не поддерживает и будет вести себя по-другому. - person Matt S.; 29.07.2013