Ruby on rails 多用户身份验证TwitterOAuthGem-Rails

Ruby on rails 多用户身份验证TwitterOAuthGem-Rails,ruby-on-rails,ruby,authentication,twitter,oauth,Ruby On Rails,Ruby,Authentication,Twitter,Oauth,我的应用程序连接到用户的Twitter帐户,并从他们的时间线中提取最新的推文。我使用了策略和策略的组合 为了了解应用程序将如何处理多用户身份验证,我创建了两个Twitter帐户,并尝试在我的应用程序中对每个帐户进行身份验证 我的问题是,两个帐户都看到了相同的tweet集(属于帐户1) 这是我的: OAuth initiazlier: 用户自授权(auth): 调用以从模型中提取推文: Twitter API Gem初始值设定项: 我会创建一个属于您的用户的不同模型,并在用户模型中添加多个。并在该

我的应用程序连接到用户的Twitter帐户,并从他们的时间线中提取最新的推文。我使用了策略和策略的组合

为了了解应用程序将如何处理多用户身份验证,我创建了两个Twitter帐户,并尝试在我的应用程序中对每个帐户进行身份验证

我的问题是,两个帐户都看到了相同的tweet集(属于帐户1)

这是我的:

OAuth initiazlier: 用户自授权(auth): 调用以从模型中提取推文: Twitter API Gem初始值设定项:
我会创建一个属于您的用户的不同模型,并在用户模型中添加多个。并在该模型中存储提供程序和uid。然后遍历用户拥有的所有子项,并发送一个tweet请求,其中包含存储在新模型中的信息。这样,您可以添加任意数量的帐户


在您的代码中,我认为问题在于
首先\u或\u创建
。链接新帐户时,将创建新用户,而不是将信息添加到现有用户。

Yep。实际上,我最终在用户表中添加了
token
secret
列。
Rails.application.config.middleware.use OmniAuth::Builder do
  provider :twitter, ENV['TWITTER_API_KEY'], ENV['TWITTER_API_SECRET']
    {
      :secure_image_url => 'true',
      :image_size => 'original',
      :authorize_params => {
      :force_login => 'true',
      }
    }
end
 def self.from_omniauth(auth)
    where(provider: auth.provider, uid: auth.uid).first_or_create do |user|
      user.provider = auth.provider
      user.uid = auth.uid
      ...
      user.save
    end

  end
def whatever
  ..
  tweets = $[my_provider_variable].home_timeline
  ..
end 
 $[my_provider_variable] = Twitter::REST::Client.new do |config|
  config.consumer_key        = ENV['TWITTER_API_KEY']
  config.consumer_secret     = ENV['TWITTER_API_SECRET']
  config.access_token        = ENV['TWITTER_ACCESS_TOKEN']
  config.access_token_secret = ENV['TWITTER_ACCESS_SECRET']
end