2017-03-21 2 views
0

J'essaie d'utiliser Omniauth pour me connecter avec facebook dans mon application Rails, il semble fonctionner quand je vois la réponse dans la console, mais je ne reçois aucune information dans env ['omniauth .auth '], quand j'essaie d'inspecter cela retourne NIL.Obtenir la réponse NIL de Omniauth facebook. [Ruby On Rails]

Mais dans la console, je peux voir la réponse que:

Object { accessToken="EAAHQ5CgynEoBAFfoTk5kSs7...WxZCw1fDHLQ4CBEspCgBAZD", userID="1268814806542277", expiresIn=7198, more...} 

J'utilise Rails et Ruby 5.0.0.1 2.3.0p0

Gemfile

gem 'omniauth' 
gem 'omniauth-facebook', '1.4.0' 

omniauth. rb

OmniAuth.config.logger = Rails.logger 

Rails.application.config.middleware.use OmniAuth::Builder do 
    provider :facebook, 'APP ID', 'APP SECRET', scope: 'email', display: 'popup', :info_fields => 'name,email', :include_granted_scopes => true 
end 

sessions_controller

class SessionsController < ApplicationController 
    def create 
    abort(env["omniauth.auth"].inspect)  // here i am getting the NIL response 
    user = User.from_omniauth(env["omniauth.auth"]) 
    session[:user_id] = user.id 
    return redirect_to new_user_session_path 
    end 

    def destroy 
    session[:user_id] = nil 
    return redirect_to root_url 
    end 
end 

Toute personne vu cela avant ou avoir une idée pourquoi?

Répondre

1

je suis en mesure de trouver donc enfin la question, je luttais avec cela depuis longtemps, mais maintenant nous avons la solution, ok on y va:

Le problème était avec le devise.rb, i a été en utilisant le code suivant dans mon devise.rb, je viens de lever ces lignes, et il a commencé à travailler

config.omniauth :facebook, app_id, app_secret, scope: 'email, public_profile' 

Ca y est :)

J'espère que cela aiderait quelqu'un, parce que je ne veux pas que quelqu'un de perdre du temps comme je l'ai fait.