2012-01-16 52 views
0

我想嵌入ajax應用程序到WordPress的網站。 ajax應用程序將與在tomcat上運行的servlet進行通信。現在,servlet需要一種方法來驗證請求是否來自登錄到wordpress的用戶。這通常如何解決?如何驗證servlet中的wordpress用戶?

AFAIK,wordpress是無狀態的,並沒有使用會話,這讓我很好奇如何在wordpress中登錄的用戶可以跟蹤。 第二個問題是,servlet如何請求wordpress來驗證給定用戶是否仍然登錄?

歡迎任何建議, 謝謝。

+0

你如何得出結論,Wordpress不會使用會話? – bingjie2680

+0

網上提到的各種資源(例如http://bit.ly/yZoAKy,但很多其他網頁都說明了這一點)提到wordpress的目標是無國籍。另外,數據庫中沒有會話/ uid表。所以我認爲會議是錯誤的路線。 – user1152442

回答

0

你唯一能做的就是讀取cookies。只有當您使用相同的域名(或子域名,並且cookie對所有子域名有效)時,這纔會起作用。然而,會話cookie可能不會爲您提供足夠的信息。您無法從Java應用程序讀取PHP會話,並且通常不能以這種方式混合兩個應用程序。

作爲一個小的解決方法,你可以用JavaScript誰是當前登錄的用戶(通過尋找DOM的用戶名)檢查,併發送與AJAX,但並不安全的。

+0

謝謝你的建議。我最初的想法是將sessionid存儲在一個javascript變量中(這樣ajax應用程序就可以輕鬆訪問它),並在每次調用servlet時傳遞它。然後,如果sessionid仍然有效並且執行或拒絕該調用,那麼servlet會要求wordpress。 (這個工作流程與CAS非常相似,不需要CAS服務器)。問題是,這是可以在wordpress中實現的嗎? (在drupal或joomla中做這件事不會有問題,因爲它們都會將數據庫中的sessionid和userid保存起來。) – user1152442