0

我在我的应用程序中使用omniauth-facebook,我不太确定,但我想我的路由有问题,因为它没有到达我重定向的方法。

MyApp::Application.routes.draw do
match '/auth/facebook/callback' => 'user#create'
resources :users

        require 'omniauth'
    class UserController < ApplicationController

      def create
        if User.exists?(:condition => ["email=?",auth_hash["info"]["email"]])
          self.current_user = User.find(:all,:condition => ["email=?",auth_hash["info"]["email"]])
        else
          self.current_user = User.new(:email => auth_hash["info"]["email"])
        redirect_to 'deals#generate_ticket'
      end
        end

def auth_hash
    request.env['omniauth.auth']
  end 


Rails.application.config.middleware.use OmniAuth::Builder do
  provider :facebook, 'XXXXXXXXXXXXXXXXX', 'XXXXXXXXXXXXXXXXX',
      :scope => 'email'
    end

也许我在路线上遗漏了一些东西,或者我没有正确安装 gem。对于每一个帮助,我将真诚地感激不尽。谢谢!

4

1 回答 1

1

您的代码看起来不错,但是:您是否在 gemfile 中添加了以下内容?:

gem 'omniauth'
gem 'omniauth-facebook' 

你也在使用:需要'omniauth',也许它应该是'omniauth-facebook'。但我建议您将 gem 添加到 gemfile 中,而不是使用 require。

问候..祝你好运。

于 2012-10-02T16:14:37.340 回答