如何在ruby应用程序中的另一个控制器中将Facebook omniauth令牌传递给考拉?
我是ruby环境的新手 在我的ruby应用程序中,我正在使用omniauth对用户进行身份验证,我能够为登录用户保存facebook令牌,问题是我想将此令牌信息作为参数传递给其他控制器中的考拉? 怎么做?请帮忙 我的OMNIAUTH控制器:如何在ruby应用程序中的另一个控制器中将Facebook omniauth令牌传递给考拉?,ruby,ruby-on-rails-3,rubygems,omniauth,koala-gem,Ruby,Ruby On Rails 3,Rubygems,Omniauth,Koala Gem,我是ruby环境的新手 在我的ruby应用程序中,我正在使用omniauth对用户进行身份验证,我能够为登录用户保存facebook令牌,问题是我想将此令牌信息作为参数传递给其他控制器中的考拉? 怎么做?请帮忙 我的OMNIAUTH控制器: class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController def facebook @user = User.find_for_faceb
class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController
def facebook
@user = User.find_for_facebook_oauth(request.env["omniauth.auth"], current_user)
...
end
我的邀请控制器(我正在尝试使用考拉宝石获取facebook用户数据)
class-InviteController
现在我将令牌存储在数据库中。它现在工作得很好!谢谢大家。您的代码来自何处?哪些地方不太好?为什么您不能将令牌存储在数据库中,并在需要时使用它?谢谢@ICICICLE现在我正在将令牌存储在数据库中。它现在工作得很好!谢谢大家。
def self.find_for_facebook_oauth(access_token, signed_in_resource=nil)
data = access_token.extra.raw_info
token = access_token.credentials.token //i want to pass this to invite controller
cookies[:myKey] = token
if user = self.where(:email => data.email).first
if(!user.facebook_id)
if(user.sign_in_count != 0)
user.facebook_id = data.id
user.token = access_token
user.save
else
user.destroy
user = User.new(:name=>(data.name).split(" ")[0], :email => data.email, :password => Devise.friendly_token[0,20], :provider => "facebook", :facebook_id => data.id)
user.skip_confirmation!
user.save!
end
end
user
else # Create a user with a stub password.
user = User.new(:name=>(data.name).split(" ")[0], :email => data.email, :password => Devise.friendly_token[0,20], :provider => "facebook", :facebook_id => data.id)
user.skip_confirmation!
user.save!
user
end
end
class InviteController < ApplicationController
def invite
fb ||= Koala::Facebook::API.new(cookies[:myKey])
@friends = fb.get_connections("me", "friends")
render json: @friends
end
end