2013-08-28 3 views
0

Я создал пользовательскую систему входа. Он работает нормально, но поскольку пользователи часто забывают свои данные для входа в систему, я хочу использовать oauth для доступа к Gmail и Facebook.Сопоставьте существующий профиль пользователя с facebook, gmail и twitter

Как я могу сопоставить существующие данные пользователя с данными Facebook или Gmail?

+6

Что значит «соответствовать существующим пользовательским данным с данными Facebook или Gmail»? Это единственный способ сделать это, чтобы текущий (зарегистрированный) пользователь подключил свой логин к своей учетной записи Facebook/Gmail. Пользователь должен это сделать. Вы не можете сделать это за них. [OmniAuth] (https://github.com/intridea/omniauth) может облегчить эту задачу. – Mischa

+0

на примере. У некоторых есть имя пользователя: [email protected] И теперь я хочу, чтобы Джон мог получить доступ к своей учетной записи на facebook своей информации о [email protected] Как узнать, могу ли я соответствовать логину facebook с правильным именем пользователя? – Remco

+1

Если этот пользователь зарегистрирован, значит вы знаете имя пользователя, верно? Если этот пользователь не вошел в систему, то ** нет пути **, чтобы соответствовать его учетной записи в Facebook с его учетной записью. (Если вы не NSA) – Mischa

ответ

1

Если у вас есть пользователь, и он использует facebook или gmail OAuth для входа в систему, вы можете идентифицировать его, посмотрев в своей текущей таблице пользователей по электронной почте (при условии, что вам требуется подтверждение по электронной почте в вашей системе, иначе оно может стать настоящим беспорядком). Twitter, с другой стороны, не позволяет вам видеть электронное письмо от пользователя, поэтому вам придется искать альтернативный способ. Чем более простой способ объединить учетную запись пользователя с внешней учетной записью пользователя, просто попросите добавить связанные аккаунты в первый логин OAuth.

Забыть их данные для входа не представляется лучшим мотивом для использования OAuth, но для реализации функции «забытый пароль/логин». OAuth, как предполагается, улучшает работу ваших пользователей, подключаясь к другим услугам, а также проще использовать те же «друзья» или «делиться» вещами. (Это, похоже, мое личное мнение, так как у меня нет источника, и @Mischa не согласен с этим). Однако, как вы заметили, это также упрощает ваше управление пользователями, если вы не хотите их реализовать самостоятельно.

+0

Не нужно помнить сотни разных имен пользователей/паролей для каждого другого сайта - это самое лучшее в OAuth. Что касается замечания об электронной почте: это очень ненадежный метод. Он может использовать другой адрес электронной почты, чем на Facebook. Единственный надежный способ состоит в том, чтобы пользователь мог войти на ваш сайт, когда он установит соединение. Затем, когда вы устанавливаете соединение, вы знаете, кто это, потому что он «current_user». – Mischa

+0

@Mischa это правда, что не является надежным, но иногда вам нужно просто выбросить надежность, чтобы сделать вещи проще. Если он использует другое электронное письмо на facebook, у него будет новая учетная запись на сайте, и это не имеет большого значения. Если пользователь хочет присоединиться к своей учетной записи facebook с исходной учетной записью сайта, у вас всегда есть возможность позволить ему сделать это вручную. Я бы сказал, что большинство людей использует одно электронное письмо для регистрации на каждом сайте - у меня нет данных, но я уверен, что вы почувствуете, что это правильно. Так почему бы не упростить его? – fotanus

Смежные вопросы