我正在使用devise/omniauth來驗證我的Rails應用程序對Facebook。我試圖將callback_path
更改爲自定義,但無論我如何設置,omniauth.auth
請求變量都會返回爲零。例如,我在這裏的callback_path
設定確切的價值,這是,如果我不把它:Facebook身份驗證不能與自定義回調路徑一起工作
Devise.setup do |config |
require "omniauth-facebook"
config.omniauth :facebook,
ENV['FACEBOOK_APP_ID'],
ENV['FACEBOOK_APP_SECRET'],
scope: "email",
:setup => lambda { |env|
env['omniauth.strategy'].options[:callback_path] = "user/auth/facebook/callback"
}
end
如果我不設置:callback_path
,則認證工作,我得到的數據回omniauth.auth
請求變量。但是,我必須重寫它,因爲我需要支持在回調中傳回一個屬性。
我查看了Omniauth::Strategy code,看看可能會出現什麼問題,但我無法弄清楚發生了什麼問題。
我的問題:
- 這是爲什麼不工作?
- 有沒有更好的方法來解決問題?
我確實最終使用狀態來傳遞變量,但我仍然不明白爲什麼callback_path不能被覆蓋。根據文件,這正是它應該用於的。 –
事實上,我看了[安裝階段Omniauth wiki](https://github.com/intridea/omniauth/wiki/Setup-Phase),它看起來與您嘗試的相符。順便說一句,你也嘗試'config.omniauth:臉譜,ENV ['FACEBOOK_APP_ID'],ENV ['FACEBOOK_APP_SECRET'],:callback_path =>「user/auth/facebook/callback」? – Ashitaka
不,但我會給你一個鏡頭,謝謝你的建議。 –