我試圖圍繞構建基於express.js/node.js的REST API的大腦。我有幾個問題...我是否需要Oauth2用於我的Web應用程序API
我是否需要基於令牌/ OAuth的1或2的安全性我的API,如果我只關心一個Web應用程序,現在(不一定是手機應用)
是否有任何資源可以學習如何從頭開始構建?我已經從字面上閱讀了前3頁的Google搜索「使用oauth2認證express.js休息api」,但我仍然沒有把握它。
我試圖圍繞構建基於express.js/node.js的REST API的大腦。我有幾個問題...我是否需要Oauth2用於我的Web應用程序API
我是否需要基於令牌/ OAuth的1或2的安全性我的API,如果我只關心一個Web應用程序,現在(不一定是手機應用)
是否有任何資源可以學習如何從頭開始構建?我已經從字面上閱讀了前3頁的Google搜索「使用oauth2認證express.js休息api」,但我仍然沒有把握它。
它很好,你想在節點中做一個REST API。它非常適合建立基於API的請求。
對於你的問題:
1)如果你正在建設只是一個基本的API,與簡單的GET和POST請求,那麼你可能要問自己,如果你正在顯示或操縱數據需要「安全」 。如果不是那麼最有可能的,你不需要實現OAuth。
但是,如果你的數據是敏感的,比如私人用戶數據,那麼你需要在你的API上加上某種安全層。此外,使用OAuth或其他基於令牌的安全性可以幫助您在整個用戶羣中建立更好的權限檢查。
2)您首先需要掌握OAuth的概念。一旦您瞭解了OAuth的工作原理,那麼使用您選擇的語言實現它非常容易。 這裏有一些很好的依據是你如何理解OAuth的更好
如需更詳細的信息瞭解OAuth寫着:http://tools.ietf.org/html/rfc6749
再次,一旦你理解的OAuth的工作流程,你可以很容易地實現它。 :P
我正在創建一個SAAS應用程序,我想我只是想用基本的電子郵件/ md5加密密碼,就像我會在PHP中構建它一樣。我正在讀oauth,看起來並不像我需要的那樣。我不打算這是第三方api,所以只是爲了讓用戶來我的網站和登錄,我認爲一個簡單的登錄解決方案,如用戶名/密碼檢查數據庫就足夠了。同意還是不同意? – 2014-09-01 20:30:52
似乎夠合理。如果您覺得自己需要OAuth,可以隨時添加OAuth。 – shieldstroy 2014-09-01 23:17:11
如果是這樣的話,那麼我認爲你不需要OAuth :) – Ninz 2014-09-02 15:28:42
它不取決於您是否將REST服務器用於Web應用程序或任何其他客戶端。如果互聯網上提供的服務,您應該將任何客戶端應用程序視爲「敵人」。我的意思是你不應該依賴任何「可信」的客戶端應用程序,如果客戶端獲得安全資源,你應該始終執行身份驗證。資源是否安全,取決於您的應用程序。我更喜歡在兩種情況下使用oauth2。如果資源不安全,我使用客戶端憑證(http://tools.ietf.org/html/rfc6749#section-1.3.4),如果安全,我使用訪問令牌(http://tools.ietf.org/html/rfc6749#section-1.4)。它可以讓你保持相同的技術,並在需要時輕鬆改變未來的事情。根據我的個人經驗,我創建了模塊化(https://github.com/vedi/oauthifizer)。它實際上是passport.js的一個包裝,這使得它在這些特殊情況下更加友好。
你可以看看這篇文章:http://aleksandrov.ws/2013/09/12/restful-api-with-nodejs-plus-mongodb/。再次,您可以考慮嘗試restifizer(https://github.com/vedi/restifizer) - 另一個模塊,它允許您更快地創建RESTful服務。並有一個簡短的例子:https://github.com/vedi/restifizer-example
希望它會有所幫助。
Oauth是關於簽署第三方客戶端的請求,如果您不想創建公共API,則不需要它。節點有明確的資源或重新確定哪些是好的起點。 – inf3rno 2014-09-08 22:07:45