2013-04-11 95 views
0

如何管理Devise.rb中的不同APP_id,APP_KEY。使用設計omniauth與多個子域?rails,devise omniauth,多個app_id,app_secret

+0

你爲什麼要這麼做?分割開發和生產? – fotanus 2013-04-11 11:54:00

+0

不適用於拆分環境,我有不同的子域(http://cisco.lvh.me.com,http://productleadership.lvh.me.com),我也爲Facebook中的每個子域創建了不同的應用程序。必須在devise.rb文件中管理不同的APP_KEY和APP_ID。或者你能告訴我如何管理這些密鑰......? – 2013-04-11 12:24:30

+0

這似乎有點難......你不能依賴於devise.rb,因爲它在服務器啓動時加載,我認爲路徑是創建一個獲取request.domain的方法,並在設計中正確設置密鑰。但是,我不確定如何在飛行中設置設計祕密。 – fotanus 2013-04-11 12:39:30

回答

0

雖然爲應用程序創建Facebook應用程序,填寫詳細信息,如下圖所示

BASIC INFO: 
Display Name: ... 
Namespace: ... 
Contact Email: .. 
App Domains: www.yourdomain.com yourdomain.com 

Website with Facebook Login: 
Site URL: http://www.yourdomain.com 

yourdomain.com在「應用程序域」字段將包括除WWW所有子域(由於這是一個特殊的子域,所以你必須明確指定)

照常使用app_id/secret。這將讓您的應用程序與Facebook進行通信以從任何子域(* .yourdomain.com和www.yourdomain.com)進行身份驗證。

一個小問題是,當用戶試圖通過A.yourdomain.com的Facebook登錄。在facebook上用戶成功登錄後,他將被重定向到http://www.yourdomain.com/users/auth/facebook(您在「網站URL」字段中給出的內容),而不是A.yourdomain.com/users/auth/facebook

因此,當從用戶重定向到OmniauthCallbacksController,你可以重定向到適當的子域。

+0

它也適用於twitter。 – manoj 2013-04-11 17:39:17

+0

Thnaks @manoj和所有。它爲我工作... – 2013-04-12 12:50:00

相關問題