我已经让omniauth 完美地为我在网络上的rails 应用程序工作。我还为我们的 iPhone 应用程序创建了一个 API 以进行交互,并且我正在尝试让omniauth 工作。
有没有办法将访问令牌(从与 Facebook.app 的集成 iOS 集成中接收)传递给omniauth 以在数据库中创建提供程序条目?
现在在我的网络应用程序中,我有一个带有以下代码的身份验证控制器
def create
omniauth = request.env["omniauth.auth"]
user = User.where("authentications.provider" => omniauth['provider'], "authentications.uid" => omniauth['uid']).first
if user
session[:user_id] = user.id
flash[:notice] = t(:signed_in)
redirect_to root_path
elsif current_user
user = User.find(current_user.id)
user.apply_omniauth(omniauth)
user.save
flash[:notice] = t(:success)
redirect_to root_path
else
session[:omniauth] = omniauth.except('extra')
flash[:notice] = "user not found, please signup, or login. Authorization will be applied to new account"
redirect_to register_path
end
end