Je suis en train de mettre en œuvre omniauth-facebook comme décrit dans Railscast #360 et ont tout à fait un barrage routier. Quand je signin cliquez sur le lien, j'ai souhaité popup me demandant d'entrée de mon facebook informations d'identification, mais quand je soumettre, je reçois un OmniAuth::Stratégies::OAuth2::CallbackError erreur. Dans les logs apache, c'est imprimée: (facebook), l'Authentification de l'échec! invalid_credentials: OmniAuth::Stratégies::OAuth2::CallbackError, OmniAuth::Stratégies::OAuth2::CallbackError
voici le code correspondant:
omniauth.rb
OmniAuth.config.logger = Rails.logger
Rails.application.config.middleware.use OmniAuth::Builder do
provider :facebook, ENV['FACEBOOK_APP_ID'], ENV['FACEBOOK_SECRET']
end
sessions_controller.rb
class SessionsController < ApplicationController
def create
user = User.from_omniauth(env["omniauth.auth"])
session[:user_id] = user.id
redirect_to root_url
end
def destroy
session[:user_id] = nil
redirect_to root_url
end
end
application.html.erb
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '(**my app id**)', // App ID
status : true, // check login status
cookie : true // enable cookies to allow the server to access the session
});
$('#sign_in').click(function(e) {
e.preventDefault();
return FB.login(function(response) {
if (response.authResponse) {
return window.location = '/auth/facebook/callback';
}
});
});
return $('#sign_out').click(function(e) {
FB.getLoginStatus(function(response) {
if (response.authResponse) {
return FB.logout();
}
});
return true;
});
};
</script>
Ai-je raté quelque chose de simple? J'ai été la recherche d'une solution pour les derniers jours.