2014-02-06 62 views
1

我用Yii創建了兩個非常不同的Web應用程序。他們都共享相同的數據庫,他們都使用相同的表登錄。兩個Web應用程序都有一個相互連接的鏈接。我試圖實現的是,如果用戶恰好登錄到任何應用程序(比如說應用程序1),他們可以從應用程序1傳輸到應用程序2而無需登錄,反之亦然。如何在一次登錄時連接兩個Web應用程序?

我尋找會話啓動,我研究了它應該在UserIdentity.php中找到,但是當我檢查時,根本沒有啓動任何會話。我現在不會發布代碼,因爲代碼工作正常,只是我需要知道如何讓用戶體驗更流暢。

+0

我不熟悉YII但我認爲t它可能會在會話中爲每個站點使用一個唯一的字符串,並且可能還會設置/匹配一個唯一的Cookie,用於確定用戶登錄的是哪個站點。 – Armin

回答

0

如果應用程序在同一臺服務器上,則可以按照this article。基本上你必須爲這兩個應用程序設置相同的(cookie),並設置一個會話路徑。您也可以在會話數據庫表保存(See Larry Ullman's article on this)作爲替代

+0

第一篇文章正是我所需要的,它引導我走向正確的方向,但現在我面臨着一整套問題。我問過一個覆蓋它的新問題。 –

0
考慮

的第一件事是,你必須讓你的會話cookie可用於兩個領域:

1)如果您的應用程序在子域你可以把它avaliable這樣開始session_start()前:

session_set_cookie_params(0,'/','.yourdomain.com'); 

而且會話數據是所有子域下可用。易呵呵


2)如果您的應用程序在不同的領域有一個很好的文章,該

Building and implementing a Single Sign-On solution
secure-and-flexible-cross-domain-sessions

另外,還要確保你瞭解會話和餅乾安全和實施它們

+0

根據#1。這是否意味着我必須爲每個頁面添加一個條件,以確保它在會話中?順便說一句,我使用Yii框架。 –

+0

@ user3278616我沒有使用Yii框架,但是,您需要檢查您需要的會話 – 2014-02-06 14:30:04

相關問題