2016-11-08 121 views
0

我有兩個域。 1. billing.test.org 2. test.orgCodeigniter停止跨域會話

test.org通常用於顧客登錄和billing.test.org使用針對應用程序管理員 場景:

test.org具有iframe在其中顯示billing.test.org 所以無論何時我通過test.org登錄,然後打開billing.test.org在新標籤中,然後顯示相同的登錄人信息,這對我不好。 因此,任何人有想法或什麼可以幫助我解決這個問題?

我已經做了我的作業,但不能得到完美的解決方案

我的配置文件中有如下信息

$config['cookie_prefix'] = ""; 
$config['cookie_domain'] = "test.org"; 
$config['cookie_path']  = "/"; 
$config['cookie_secure'] = FALSE; 
$config['sess_cookie_name']  = 'ci_session'; 
$config['sess_expiration']  = 7200; 
$config['sess_expire_on_close'] = TRUE; 
$config['sess_encrypt_cookie'] = TRUE; 
$config['sess_use_database'] = TRUE; 
$config['sess_table_name']  = 'ci_sessions'; 
$config['sess_match_ip']  = TRUE; 
$config['sess_match_useragent'] = FALSE; 
$config['sess_time_to_update'] = 300; 

問題: 如果通過test.org用戶登錄,那麼它應該不打開billing.test.org直到用戶手動登錄

所有的建議表示讚賞。

感謝所有提前。

+0

如何驗證兩個.org網站之間的會話? 相同的會話變量? –

+0

是因爲billing.test.org是主要門戶網站,test.org是在iframe中使用billing.test.org –

+0

如果您在iframe中調用test.org,那麼創建一個參數(加密)並從billing.test生成它。有機如果找到有效參數,則打開iframe。 test.org/12345 if 12345 found open the frame。如果不將它留作空白或顯示錯誤消息。 –

回答

0

您需要爲billing.test.org站點單獨配置(會話)。
對於您的結算網站,理想情況下,sess_cookie_namesess_table_namecookie_domain設置爲'billing.test.org'。

另一方面,你似乎在使用CodeIgniter 2.x,它已經放棄了一年多了。您應該儘快升級到版本3。

+0

感謝您的回覆,但我的應用程序與flexigrid建立HMVC codeigniter,它現在是非常大的應用程序,所以我不能更新它最新版本的codeigniter 3.X –

+0

這將需要工作,當然,但是你可以。儘管這不是我的答案的主要觀點。 – Narf