2011-12-14 57 views
6

我要開發與跨域單點登錄多站點應用程序(類似於谷歌帳戶,有多個谷歌服務,如Gmail,Google文檔,谷歌+):Rails中跨域的單點登錄多站點應用程序?

multi applications, multi domains, single sign on

  • 要使用童裝網站用戶必須簽署在父母的網站上。
  • 每個網站都有自己的邏輯,用戶登錄除外,積分和 發票。
  • 從子應用程序我必須能夠登錄到全球用戶 帳戶,花費用戶點和生成一些服務的發票。
  • 註冊表單,發票清單和管理點面板均爲 只能從父網站/應用程序獲得。

在Rails 3.1上實現這個最好的策略是什麼?可伸縮性,性能和安全性非常重要。

  • 單軌或多軌應用?
  • 單個或多個數據庫?
  • 全球服務在主要應用程序或作爲一個單獨的應用程序/引擎?
  • 如何實現單點登錄?數據庫中的單一會話ID或類似Facebook的oauth?
  • 如何通過子站點的請求實施支出點和生成發票?
+0

你採取什麼辦法? – Karolis 2012-06-07 21:37:27

+0

從@ david-sulc回答,用@ token.get('/ customaction')`來接收自定義數據。 – rogal111 2012-07-19 15:08:34

回答

-1

因此,讓我們假設您在主應用程序中創建了User並遷移它。那麼你需要做的是從其他應用程序訪問這個數據庫。這沒有問題。首先,你需要到主應用程序的數據庫連接定義添加到子應用程序的config/database.yml這樣的:

parent_connection: 
    adapter: your_adapter_here 
    host: your_host_here 
    username: username 
    password: password 
    database: main_application_production 

然後創建一個模式叫用戶,但不的棚架或某事。喜歡這個。只需像這樣手動創建文件:

class User < ActiveRecord::Base 
    establish_connection :parent_connection # This uses the specified connection 
end 

在默認情況下,選擇的連接是匹配環境名稱的連接。你只需要指定變化。所以現在您可以像在主應用程序中那樣訪問User類。

+0

好吧,我知道如何建立從模型到選定數據庫的連接,但這只是整個問題的一小部分。我需要一個解決方案/軟設計模式/戰略/模型如何解決可伸縮性,性能和安全問題。 – rogal111 2011-12-14 13:46:40

相關問題