2011-09-27 79 views
1

在你把這個問題寫成傻瓜之前,我想補充一點,在SO上有幾個題目相同的問題,但這個問題有點不同,因爲大多數/所有問題都涉及到SSL,而我的問題沒有。跨域驗證:如何?

www.mysite.com是我的網站,它是使用wordpress cms構建的。我應該在我的網站上構建一個用戶管理功能(我猜wordpress在默認情況下會提供此功能/需要一些插件)。當用戶登錄到www.mysite.com,我應該對www.thirdpartysite.com該用戶進行身份驗證。這在某種程度上有點類似於說OpenID,但只有它不提供/支持除基於Web的認證以外的任何其他認證方案。

那麼,我在這裏幾乎陷入這個問題?在這裏繼續的最佳方式是什麼?我是否告訴www.thirdpartysite.com他們需要公開API進行身份驗證?或者我可以在這裏使用AJAX,並有一段代碼在www.thirdpartysite.com的後臺進行身份驗證 - 我不確定是否有可能。

回答

1

你能做的最好的事情就是創建一個Ajax請求其通過SESSID對所有的網站進行身份驗證。這是可能的,如果你使用,例如JSONP

+0

這裏的問題是,我擁有www.mysite.com,我沒有www.thirdpartysite.com - 我如何通過SESSID來驗證他們的網站? – Jay

2

我不會在這裏使用AJAX,我會用cURL

做與有效和無效的憑據www.thirdpartysite.com測試,以找到一種方法來編程確定登錄成功與否。您可能會發現狀態碼不同,或者在登錄成功時重定向頁面。

一旦你有一種方法來確定成功和失敗的登錄,創建一個www.mysite.com登錄表單。當用戶嘗試登錄時,在www.mysite.com上處理該帖子的php代碼中,向www.thirdpartysite.com發送相應的帖子(例如,使用cURL)。如果登錄www.thirdpartysite.com成功,則將用戶視爲已認證,創建會話和cookie等。如果登錄www.thirdpartysite.com失敗,則向用戶顯示錯誤。

有跡象表明,發揮作用以這種方式作爲www.mysite.com會有專門登錄到www.mysite.com用戶訪問www.thirdpartysite.com用戶名和密碼的安全考慮。這是他們可能或可能不信任你的東西。

+0

「如果登錄www.thirdpartysite.com成功,然後將用戶視爲已認證,請創建會話和cookie」 - 在www.mysite.com上創建會話,同時保留www.thirdpartysite.com的cookies,以供將來查詢?你是這個意思嗎? – Jay

+0

取決於www.mysite.com與www.thirdpartysite.com的集成程度。如果您僅使用www.thirdpartysite.com進行身份驗證,則不需要存儲任何Cookie。如果您向www.thirdpartysite.com提出其他請求,則是的,您需要在會話中存儲Cookie。 –