我有一個正在使用Zend Framework開發的網站。我也有一個WordPress的網站放在同一臺服務器上。當我登錄到我的Zend站點時,是否可以使用任何(e:g AJAX調用)登錄Wordpress站點。從我的網站登錄到WordPress的網站
原因:
我對Zend的網站的鏈接文字新聞的博客,當我是點擊鏈接,就帶我到WordPress的登錄頁面。
我希望用戶被帶到word按博客頁面鏈接作爲登錄用戶。
我在這方面做了很多研究,但沒有找到正確的路徑。
謝謝。
我有一個正在使用Zend Framework開發的網站。我也有一個WordPress的網站放在同一臺服務器上。當我登錄到我的Zend站點時,是否可以使用任何(e:g AJAX調用)登錄Wordpress站點。從我的網站登錄到WordPress的網站
原因:
我對Zend的網站的鏈接文字新聞的博客,當我是點擊鏈接,就帶我到WordPress的登錄頁面。
我希望用戶被帶到word按博客頁面鏈接作爲登錄用戶。
我在這方面做了很多研究,但沒有找到正確的路徑。
謝謝。
禁止在2個不同域名之間使用AJAX,您可以在PHP中使用Curl函數。 http://bit.ly/RBGgfp
對您的問題存在安全隱患。如何將憑據從一個網站傳遞到另一個網站而不實際通過他們...
您需要某種授權過程,它會告訴WP,正在登錄到WP的用戶實際上是已經登錄到的用戶Zend公司。爲此,您不能在從ZF到WP的Ajax調用中傳遞用戶名和密碼,因爲每個人都可以從緩存的JS源代碼中獲取用戶的密碼。 此外,你不能只傳遞用戶名在Ajax調用,因爲然後每個人都可以做這樣的ajax調用登錄爲別人。
一般而言,您應儘可能限制通過客戶端請求(Ajax)的授權。
這樣做的一種方式是許多稱爲OAuth的社交網絡(即Facebook)使用的機制。 Facebook使用特殊令牌進行授權,並且在Facebook和使用Facebook連接機制的網站之間不傳遞憑證。此外,Facebook使用PHP的curl函數在幕後進行跨服務器調用,因此客戶端沒有留下關於授權過程的痕跡。
你可以但你不必使用OAuth,但如果你這樣做,它會是一個很好的經驗收益。
您面臨的另一個問題是,您的ZF和WP可能在客戶端使用不同的授權cookie。因此,當在ZF網站上授權用戶時,您還需要對負責登錄的WP頁面進行Ajax調用,以確保設置了正確的cookie。
的蘇瑪summarum流程將與此類似(假設已在兩個站點創建用戶帳戶):在ZF網站
現在,因爲我們不會將用戶密碼從ZF發送到WP(並且我們不知道WP端 - 因爲它是加密的),您不能使用wp_signon登錄用戶。但是你可以使用wp_set_auth_cookie來滿足這個特定的目的。
這是一個粗略的解釋,但我希望它會有所幫助。
P.S. wp_login已被棄用,您應該避免使用它。
而且wp_login動作不叫wp_set_auth_cookie它可以作爲爲什麼登錄的第一個地方你的用戶沒有出現的理由。
嘗試用它wp_set_auth_cookie您的解決方案。我在最後說這個,所以你不要錯過上面的安全問題。
由於這兩個網站在同一臺服務器上,推測你可以訪問文件形成既Zend和WordPress的。當用戶登錄到基於Zend的站點時,可以添加一個調用來加載基本的wordpress文件,然後使用函數wp_set_auth_cookie()將用戶登錄到wordpress中。
require_once 'wordpress-directory/wp-load.php';
wp_set_auth_cookie($wp_user_id);
在你的Zend的網站用戶表,你可以有一個附加列wp_user_id
存儲WordPress的用戶ID爲您的用戶,讓你知道什麼是用戶ID傳遞wp_set_auth_cookie()
功能。
我寫了在多一點籠統一篇博客文章,如果你想看看還有here
你怎麼想認其WP用戶需要登錄?基於您的Zend網站登錄憑據? –
用戶在wordpress和Zend站點中擁有相同的憑據。 –
你的意思是說,進入WP頁面**的用戶應該擁有一個擁有相同登錄名/密碼的WP賬戶? wp_users表中已經有記錄了? –