Может ли Devise + Omniauth иметь несколько типов входа в систему?

Я использовал Devise как стандартный гем аутентификации для других проектов. В другом проекте я использовал Devise + Omniauth для аутентификации Twitter.

В новом проекте мне нужно, чтобы мои конечные пользователи могли входить в систему через Twitter и Facebook или регистрироваться через приложение. В будущем пользователь сможет связать свои учетные записи вместе. Например, его аккаунт в Twitter и Facebook. Или его Twitter и «родной» аккаунт. "Native" - ​​это учетная запись, которую он зарегистрировал непосредственно в веб-приложении.

Способен ли Devise на это? Если да, то как связать учетные записи пользователей вместе? Какая концепция стоит за этим? Как приложение узнает, какая учетная запись Facebook и Twitter принадлежит какому пользователю?

Идеи и предложения приветствуются.

РЕДАКТИРОВАТЬ:

Я подписан на http://railscasts.com/episodes/236 -omniauth-part-2? autoplay = true , и я не понимаю. Если

  1. пользователь выходит из приложения,
  2. пользователь имеет учетную запись, зарегистрированную в приложении,
  3. пользователь входит в систему с другим поставщиком услуг (facebook, twitter, и т. д.).

Как приложение узнает, как связать его нового поставщика услуг с его уже существующими учетными записями?

Stackoverflow.com имеет эту функцию. Но один из поставщиков услуг, которого они не включают в свою функцию «множественного входа», - это Twitter. Я предполагаю, что это потому, что Twitter не раскрывает электронную почту пользователя через свой API. В то время как другие поставщики услуг (Facebook, Yahoo, Gmail) делают это.

6
задан Christian Fazzini 16 August 2011 в 08:32
поделиться