2013-03-17 84 views
1

我有一個很奇怪的問題,但只在生產服務器上。omniauth-facebook問題「Invalid_Credentials」

我在我的Gemfile中使用了這個Gem。

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

但是突然開始在生產中出現以下錯誤,在當地工作正常。

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 

搜查各地不同的論壇和人說,一個臨時的解決方案只是恢復到1.4.0版本,即

gem "omniauth-facebook", "1.4.0" 

它也可以在當地正常,但開始變得在生產其他錯誤消息。

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

this鏈接說再次升級到此版本1.4.1

好像一個被死鎖/這裏循環的局面。任何人都可以面對/解決這個問題嗎?

在此先感謝。

回答

1

我假設你使用JS SDK登錄?也許你的代碼看起來是這樣的:

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

我不知道爲什麼簽名的請求沒有被自動地傳遞下去,但我發現這個解決方法,以優良的工作:

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