Подтвердить что ты не робот

Могу ли я связать человека с twitter и facebook при разборе?

Я создаю приложение, в котором человек может зарегистрироваться с помощью facebook, twitter или электронной почты. Когда вы ищете друзей, вы можете связать свои facebook, твиттер-аккаунты.

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

Есть ли способ, которым я могу иметь как authdata для одного и того же пользователя, поэтому, когда пользователь связывает как твиттер, так и facebook, он покажет друзьям без необходимости повторного входа?

Спасибо!

4b9b3361

Ответ 1

Отличный вопрос. Это было тяжело для меня, чтобы найти ответ. К сожалению, таблица Parse User, которая имеет поля пользователя по умолчанию, которые уникальны и требует наличия только одного пользователя на одну учетную запись. Не имеет значения, как они входят (через Facebook, Twitter, E-mail, ect), может быть только один username password из полевого ect email. Вы можете посмотреть, как они говорят об этом, и почему это так происходит здесь, в "Спросить обо всем" .

Я знаю, что это не идеальное решение для разработчиков, которые должны предоставить пользователю возможность на платформе, в которую они хотят войти. Если вы добавите оба пользователя, вам нужно будет помнить, была ли их учетная запись настроена через Facebook или Twitter в вашем случае.

Однако, если вы хотите сохранить/связать аспекты Facebook и Twitter с вашим проектом, вы можете вытащить электронную почту пользователей (при условии, что они используют один и тот же для своих учетных записей на Facebook и Twitter) из Facebook и Twitter и сделать аутентификация через их адрес электронной почты.

Надеюсь, что это поможет. Ура!

Ответ 2

Ответ - большой НЕТ. Поскольку Parse.com имеет только один класс пользователя для одного приложения, и в этом классе User мы имеем только один -authData- (данные аутентификации). Когда пользователь подписывается с учетными данными социальной сети, эти данные должны использоваться для сеанса. Этот AuthData состоит из максимум 1 типа.

Ответ 3

Имел ту же проблему, плюс я также хотел войти в Google+. Я сделал, чтобы создать объект Account, который содержит следующее поле:

  • Поставщик: String - Twitter, Facebook, Google,...
  • uniqueId: String - содержит идентификатор Twitter, идентификатор Facebook и т.д.
  • Пользователь: Указатель. Содержит пользователя, связанного с этим идентификатором.

Затем я создал script, который просматривает всех пользователей и экспортирует их authData в несколько записей Account. Я также добавил крюк afterSave на _User для переноса новых данных пользователей.

Теперь сложная часть... Так как Parse не дает нам никакого доступа для социального входа, мне пришлось обрабатывать все вручную в Cloud Code. Идея состоит в том, чтобы использовать SDK из Facebook и Twitter, чтобы получить идентификатор учетной записи пользователя и токен доступа. Затем вы отправляете эти данные в облачную функцию loginFromFacebook/LoginFromTwitter и контролируете, что идентификатор Facebook/Twitter совпадает с маркером доступа (например, делая запрос к API-интерфейсу Facebook). Как только вы знаете, что у пользователя есть правильный код, вам нужно проверить, существует ли он в Account. Если да, вы возвращаете (с ответом .success) токен сеанса пользователя Parse, связанный с этим идентификатором (поле Account.user), и используйте User.become на клиенте, чтобы завершить вход пользователя. Если нет, вам нужно создать нового пользователя, добавить запись en в Account и вернуть новый токен сеанса пользователя (+ делать User.become на клиенте).

Теперь, благодаря таблице Account, вы можете легко связать/отменить связь с пользователями, просто изменив связанный идентификатор пользователя в таблице Account. Вы также можете легко проверить друзей Facebook (если вы запрашиваете разрешение).

Ответ 4

Я не думаю, что это можно сделать. Поскольку parse.com не допускает множественного связывания с одним и тем же пользователем. Кроме того, я бы очень сомневался, что обходной путь будет возможен из-за безопасности в Twitter и Facebook для связывания счетов. Поэтому я бы сказал, что нет никакой возможности иметь одну и ту же пользовательскую ссылку на Twitter и Facebook в Parse.

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