簡體   English   中英

是否可以使用omniauth-facebook rails gem保存多個用戶?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM