2012-10-02 4 views
0

내 앱에서 omniauth-facebook을 사용하고 있는데 잘 모르겠지만 리디렉션하는 방법에 도달하지 않아 경로에 문제가있는 것 같습니다.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 

경로에 뭔가가 누락되었거나 올바르게 설치되지 않았을 수 있습니다. 모든 도움에 진심으로 감사 할 것입니다. 감사합니다!

답변

1

코드는 잘 보이지만 : 다음?

gem 'omniauth' 
gem 'omniauth-facebook' 

은 또한 당신이 사용하는 당신의 gemfile에 추가나요 'omniauth'을 요구, 어쩌면 'omniauth - 페이스 북'이어야한다. 하지만 require를 사용하는 대신 gemfile에 보석을 추가하는 것이 좋습니다.

감사합니다 .. 행운을 빈다.

+0

답변을 주셔서 감사합니다.하지만 시도했지만 아직 동일한 상황입니다. callbitack 단계가 시작되면 오류가 발생합니다. TypeError 은 Pathname을 String으로 변환 할 수 없습니다. 오류의 원인이 무엇인지에 대한 단서가 없습니다. 어떤 생각입니까? – user1714597