2017-01-24 4 views
6

私はFacebookのOauthとDeviseを私のレールアプリで使っています。私は正常にフェイスブックのログインページに連れて行きましたが、コールバックアクションでエラーが発生しました。コールバックアクションでnilを返すrequest.env["omniauth.auth"]まで追跡しました。Rails、Devise、Facebook Oauth:request.env ["omniauth.auth"]はゼロです

Gemfile:

gem 'devise' 
gem 'omniauth' 
gem 'omniauth-facebook' 

ルート:

devise_scope :user do 
    get '/users/auth/facebook/callback', to: 'users/omniauth_callbacks#facebook' 
    end 

    resources :users 
    devise_for :users, path: '', path_names: { sign_up: 'register', sign_in: 'login', sign_out: 'logout'}, :controllers => { :omniauth_callbacks => "users/omniauth_callbacks" } 

イニシャライザ/ devise.rb:

config.omniauth :facebook, Figaro.env.facebook_key, Figaro.env.facebook_secret, 
       scope: 'email,public_profile', 
       callback_url: Figaro.env.facebook_callback_url 

User.rb:

class User < ActiveRecord::Base 
    devise :database_authenticatable, :registerable, 
      :recoverable, :rememberable, :trackable, :confirmable, :validatable, 
      :omniauthable, :omniauth_providers => [:facebook] 

omniauth_callbacks_controller.rb:私のrequest.env["omniauth.auth"]nilを返している原因

class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController 

def facebook 

    @user = User.from_omniauth(request.env["omniauth.auth"]) 
    request.env["omniauth.auth"] ## <<=== this is nil 

任意のアイデア?

+0

コーディングお楽しみください、あなたはこれまでに解決策を見つけるか得るのだろうか? –

答えて

2

だから最終的に私は問題を見つけることができています、私はまた、長時間同じ問題に苦しんでいたが、今、我々は解決策を持って、[OK]をここで私達は行く:

問題が工夫してあります。

config.omniauth :facebook, Figaro.env.facebook_key, Figaro.env.facebook_secret, 
       scope: 'email,public_profile', 
       callback_url: Figaro.env.facebook_callback_url 

をしてから、サーバーを再起動して、Facebookからログイン取得しよう:RBは、単にファイルからこれを削除してください。

あなたは何をしたい:)

はおかげで、:)

関連する問題