我使用Oauth寶石登錄到我的網絡應用程序與臉譜,微博和谷歌帳戶。爲此,我在他們每個人中都創建了一個項目,並獲得了應用程序ID和祕密ID。我想在我的數據庫中有一個條目,即使用戶使用同一個郵件ID登錄了所有三個。我們將以下信息存儲在數據庫中(電子郵件,名稱,提供者,uid)。問題是Twitter不提供郵件ID。所以我計劃從暱稱生成郵件標識。有無論如何找到登錄用戶是相同的 - Oauth
user.rb
//for facebook and google
user = User.create(name:auth.extra.raw_info.name,
provider:auth.provider,
uid:auth.uid,
email:auth.info.email,
password:Devise.friendly_token[0,20],
)
//for twitter
user = User.create(name: auth['info']['nickname'],
provider: auth.provider,
uid: auth.uid,
email: auth['info']['nickname'] + '@twitter.com',
password:Devise.friendly_token[0,20],
)
例如
我的郵件編號[email protected]在Facebook,Twitter和谷歌登錄。但在我的分貝它創建兩個條目
11 | [email protected] // for facebook and google
12 | [email protected] // for twitter
我不知道這種行爲。是否有任何其他可能的方式來找到登錄的用戶是同一個人?我只需要一個條目。如果可能,請向我建議任何更好的方法。
如何將twitter ID和同一用戶的Gmail地址關聯起來? – emaillenin