2015-08-25 18 views
1

我在兩個不同的服務器上創建了兩個CakePHP應用程序。如何在兩個CakePHP應用程序之間確保發佈請求

應用程序A需要使用curl在POST發送數據的陣列應用B

$ch = curl_init(); 
curl_setopt($ch,CURLOPT_URL,"http://example.com/application_B"); 
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); 
curl_setopt($ch,CURLOPT_HEADER, false); 
curl_setopt($ch, CURLOPT_POST, count($data)); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
$output=curl_exec($ch); 
curl_close($ch); 

什麼是最好的做法,以確保應用程序應用程序B不會接受請求來自應用程序A的任何其他請求?
檢查IP地址是否足夠?或者CakePHP有內置的方法來做到這一點?

PS:我知道HttpSocket比捲曲CakePHP中,但我應用程序A使用CakePHP 1.1(不是我的意志)

回答

3

有這樣做的幾種方法更好。 Cake沒有提供任何唯一的身份驗證適配器來檢查特定的身份驗證系統。

首先在應用程序之間使用一個HTTPS連接。禁用API的HTTP。

您可以使用用戶/密碼和令牌使用無狀態身份驗證。通過發送用戶/密碼來請求令牌,並獲得綁定到請求它的IP的有時間限制的令牌。您的身份驗證適配器將處理這些請求。

或者乾脆直奔Oauth

+0

謝謝!我會試試Oauth。太糟糕了CakePHP沒有提供默認的方法來保護它。 – hg8

1

正如burzum說有很多方法。 A 非常非常簡單的方法是在兩個應用程序上都有鍵字符串值。在應用程序A上使用此密鑰散列帖子數據,並將散列值與您的數據數組一起傳遞。然後在應用程序B上再次散列數據(不含散列值)。比較兩個散列。如果散列值相同,那麼數據是正確的。

相關問題