![](/img/trans.png)
[英]Multiple Facebook omniauth callback paths using omniauth-facebook in rails
[英]Is it possible to save multiple users using omniauth-facebook rails gem?
我使用登錄單個用戶的Facebook-omniauth gem在user.rb中具有以下代碼:
def self.from_omniauth(auth)
where(auth.slice(:provider, :fb_id)).first_or_initialize.tap do |user|
user.provider = auth.provider
user.fb_id = auth.uid
user.name = auth.info.name
user.first_name = auth["info"]["first_name"] unless auth["info"].blank?
user.last_name = auth["info"]["last_name"] unless auth["info"].blank?
user.picture_url = auth.info.image
user.email = auth.info.email
user.oauth_token = auth.credentials.token unless auth["info"].blank?
user.location = auth.info.location unless auth["info"].blank?
user.save!
end
我想建立多個Facebook用戶的用戶帳戶。 當我登錄正常但其他人登錄時,該應用將替換我的用戶實例。 有沒有辦法從這個gem繼續建立用戶帳戶?
謝謝!
解決方案在第二行中: where(auth.slice(:provider, :fb_id))
我將其從:uid更改為:fb_id,以匹配我所有其他表中所有其他內容的facebook id,但是在檢查auth
哈希后,我意識到:fb_id根本找不到,因此沒有產生任何新用戶。
我將User fb_id
列重命名為uid
,現在可以正確收集新用戶了:
def self.from_omniauth(auth)
where(auth.slice(:provider, :uid)).first_or_initialize.tap do |user|
user.provider = auth.provider
user.uid = auth.uid
user.name = auth.info.name
user.first_name = auth["info"]["first_name"] unless auth["info"].blank?
user.last_name = auth["info"]["last_name"] unless auth["info"].blank?
user.picture_url = auth.info.image.sub("square", "large")
user.email = auth.info.email
user.oauth_token = auth.credentials.token unless auth["info"].blank?
user.location = auth.info.location unless auth["info"].blank?
user.save!
end
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.