Rails Koala - 为用户更新Oauth_token

时间:2017-03-13 13:39:25

标签: ruby-on-rails ruby omniauth koala

嘿,大家为初学者的问题道歉,还在学习铁轨。我能够使用omniauth设置facebook身份验证并完美设计。现在,我开始玩考拉宝石了。

一旦我将oauth_token的一行添加到我的用户模型,任何注册Facebook的新用户 - 我都可以连接他们的Facebook api并获取他们的数据。但是,我的旧用户(在我安装Koala之前注册了)以及将oauth_token设置为nil的问题。如何为他们更新oauth_token,以便我可以像新用户一样连接facebook api?我在下面列出了我的相关代码。非常感谢你!

User.rb

class User < ApplicationRecord
  devise :database_authenticatable, :registerable,
     :recoverable, :rememberable, :trackable, :validatable, :omniauthable, omniauth_providers: [:facebook]

  def self.from_omniauth(auth)
    where(provider: auth.provider, uid: auth.uid).first_or_create do |user|
      user.email = auth.info.email
      user.password = Devise.friendly_token[0,20]
      user.username = auth.info.name     
      user.avatar = URI.parse(auth.info.image)
      user.oauth_token = auth.credentials.token #Added this after learning about Koala
    end
  end

  def facebook
    @facebook ||= Koala::Facebook::API.new(self.oauth_token)
  end
end

用户再次登录后 - 仍然将oauth_token保持为nil enter image description here

0 个答案:

没有答案