2011-03-14 88 views
4

我有一個PHP Web應用程序,我想讓它可以跨多個客戶端訪問。所以,我試圖讓它更像一個API。我的問題是:我將如何處理使用API​​的新用戶的創建?如果我有一個類似http://example.com/user/signup這樣的URL,它會接收新的用戶詳細信息並通過POST請求創建新用戶,那麼這會不會成爲人們濫用它並輕鬆創建假用戶的問題?REST API中的用戶註冊

回答

0

我建議只允許開放ID的API中,因爲這將是難以實現機器人預防計劃到它(驗證碼...)

反正連開ID isint的API在一個偉大的想法是你確定你需要通過API註冊嗎?

+0

我真的不明白你的意思,「因爲它很難實施防止機器人方案(captcha ...)」。如果我沒有在API本身進行註冊,我將如何在多個客戶端上創建新用戶,例如Android應用程序,例如... – 2011-03-14 21:24:04

+0

,但是您是否要編寫android應用程序等?如果是,那麼註冊應該獨立於API完成,如果不是,那麼你應該發送一些挑戰到應用程序來驗證其用戶不是機器人。驗證碼會很好。但這不是明智的恕我直言,爲每個客戶自己寫註冊會更靈活和可控 – n00b 2011-03-15 10:24:57

+0

不,我不會寫android應用程序等,他們將由別人寫。我只開發API。 CAPTCHA聽起來像是一個很好的概念。我正在考慮使用與Twitter非常相似的基於令牌的系統(Twitter不會用於未註冊),其中應用程序首先會使用某種形式的憑證請求令牌。然而,我正在尋找的是Android/iPhone應用程序之一的示例實現。如果有這麼多的應用程序已經在使用它,那麼認爲已經有一個已經建立的解決方案,這是我無法找到的。 – 2011-03-16 06:13:44

0

你需要做的是使用類似OAuth的東西來驗證從註冊的「應用程序」訪問您的系統。然後客戶端可以註冊訪問並接收令牌密鑰和祕密。然後他們可以使用這些東西來創建一個訪問令牌的請求。雙方使用祕密簽署令牌,然後他們可以使用加密的訪問令牌來訪問API。您的服務器使用只有您和授權客戶才能擁有的密鑰來驗證傳入令牌。現在它很安全。