2013-03-17 4 views
1

J'ai un problème très étrange, mais seulement au serveur de production.questions omniauth-facebook "Invalid_Credentials"

j'utilisais ce petit bijou dans mon Gemfile.

gem "omniauth-facebook", "~> 1.4.1" 

Mais soudainement commencé à obtenir l'erreur suivante sur la production, fonctionne très bien au niveau local.

heroku[router]: at=info method=GET path=/auth/failure?message=invalid_credentials&strategy=facebook host=www.myapp.com fwd="182.189.55.111" dyno=web.1 queue=0 wait=0ms connect=1ms service=90ms status=302 bytes=95 

Cherché forums autour de différentes et les gens dit, une solution temporaire est juste de revenir à la version 1.4.0-à-dire

gem "omniauth-facebook", "1.4.0" 

Il fonctionne aussi bien au niveau local, mais a commencé à obtenir un autre message d'erreur à la production .

OmniAuth::Strategies::Facebook::NoAuthorizationCodeError (must pass either a `code` parameter or a signed request (via `signed_request` parameter or a `fbsr_XXX` cookie)): 

lien this dit de mettre à jour à nouveau à cette version 1.4.1

Semble à une impasse être/boucle ici la situation. Quelqu'un peut-il faire face à ce problème?

Merci d'avance.

Répondre

1

Je suppose que vous utilisez le SDK JS pour vous connecter? Peut-être que votre code ressemble à:

if (response.authResponse) { 
    var url = "/auth/facebook/callback"; 
    window.location = url; 
} 

Je ne sais pas pourquoi la demande signée n'est pas passé le long automatiquement, mais je l'ai trouvé cette solution de contournement pour fonctionner correctement:

if (response.authResponse) { 
    var url = "/auth/facebook/callback"; 
    url += '&' + $.param({ signed_request: response.authResponse.signedRequest }); 
    window.location = url; 
}