2011-07-30 33 views
0

我有一組PHP服務器端腳本,它們爲登錄用戶廣泛使用PHP會話來維護用戶會話狀態。爲ajax請求建立獨立的服務器會話?

客戶端在移動應用程序中,通過Jquery ajax,我需要建立一個獨立的會話(以不同的用戶身份驗證),不會中斷已建立的會話。換句話說,對於服務器來說,它必須看起來像一個不同的瀏覽器會話。

有沒有一種方法可以通過Jquery/Javascript客戶端以編程方式完成這項工作,僅用於特定請求?

+0

您是否在PHP方面使用任何類型的框架。 – andho

+0

我正在使用PHP登錄腳本框架 - hybridauth可以在http://hybridauth.sourceforge.net/或github fork https://github.com/smarcombes/HybridAuth上找到。我成功地使用框架來登錄我的用戶,但問題是我也想使用該框架爲該用戶獲取其他社交提供者數據,而無需將它們從當前會話中註銷。我不想在另一個域/服務器上創建另一個實例/安裝hybridauth,只是爲了保持會話不同。必須有一種方法來允許從屬呼叫,而無需將用戶登出主會話。 – Inator

+0

在移動應用程序中,還有哪個用戶獲得了身份驗證?用戶發送憑證還是內置到客戶端中。 – andho

回答

0

PHP中的會話使用標識符進行傳輸,標識符通常作爲cookie傳遞 - 請參閱手冊的Passing the Session ID部分。

這意味着如果該標識符(cookie)沒有傳遞給Ajax查詢,那麼通過該查詢調用的PHP腳本將不會認爲用戶是相同的;並會將他視爲另一個人。

因此,基本上:您必須找到一種方法,在執行Ajax請求時不會傳遞該會話標識符。
當然:不要刪除cookie:如果你不想讓你的用途失去他的會話,它必須保留在這裏,用於其他類型的請求。

0

也許,但它可能會更好地使用不與原始服務器/域共享會話信息的不同服務器/域。