2016-03-05 81 views
1
授權的應用程序只(如Facebook)一個REST API

我建設有Laravel一個REST API,現在我有一個像建立可與Laravel

api.example.com/posts/3/comments 

現在的URL我想知道如何保護此API因爲現在已經完成,所以任何試圖對此網址發送GETPOST ...請求的人都將獲得積極的結果。

我希望此API僅適用於授權應用程序(如Facebook API)。目前,這些應用程序只是我的網站和我的iOS應用程序。

我正在考慮創建一個表applications來存儲應用程序的密鑰。但我不知道如何在沒有發佈密鑰的情況下對其進行身份驗證(這顯然是不安全的)。

有什麼建議嗎?謝謝。

+0

當我Google保護休息api時,我得到了很多結果, http://stackoverflow.com/questions/14094529/how-to-protect-restful-api? –

+0

我也搜索了它並找到了教程,但他們都是要認證用戶而不是應用程序。 – David

+0

對於Laravel,您可以實現特定的中間件並在路由或控制器級別實施它們。不過,我不知道你的應用程序的認證與用戶有什麼不同,但是所涉及的邏輯不應該完全不同 - 例如[api-guard](https://github.com/chrisbjr/api -guard)可能是一個解決方案(當然,你可以自己實現) –

回答

1

我會建議你使用類似JWT的東西。使用它,您可以在設備上本地創建和存儲令牌,然後每次有人打電話給服務器時,都會檢查令牌並確保它們是他們自稱的對象。如果你喜歡,你可以存儲令牌過期。它們通常用於無狀態應用程序,因此您需要擺脫服務器會話的概念。您可以使用Middlewares來過濾進入您的應用程序的HTTP請求。