我需要Oauth2用于我的Web Apps API

我正在围绕构build一个基于express.js / node.js的REST API来包装我的大脑。 我有一些问题…

  1. 如果我现在只关心Web应用程序(不一定是电话应用程序),我是否需要基于token / oauth 1或2安全性的API?

  2. 是否有任何资源来学习如何从头开始构build? 我已经阅读了字面上的第一个3页的谷歌search“rest api与oauth2authenticationexpress.js”,我还没有把握。

它很好,你想在节点做一个REST API。 它非常适合build立基于API的请求。

对于你的问题:

1)如果你只是build立一个基本的API,只需简单的GET和POST请求,那么你可能会问自己,你正在显示或操作的数据是否需要“安全”。 如果不是那么最有可能的,你不需要实现OAuth。

但是,如果你的数据是敏感的,比如私人用户数据,那么你需要在你的API上加上某种安全层。 此外,使用OAuth或其他基于令牌的安全性可以帮助您在整个用户群中build立更好的权限检查。

2)您首先需要掌握OAuth的概念。 一旦您了解了OAuth的工作原理,那么使用您select的语言就可以轻松实现。 这里有一些关于如何更好地理解OAuth的好消息

http://www.slideshare.net/MindfireSolutions/oauth-and-rest?qid=09a7d224-78bb-4b47-8957-3f0a0ce809a4&v=qf1&b=&from_search=3

有关OAuth的更多详细信息: http : //tools.ietf.org/html/rfc6749

同样,一旦您了解了OAuth的工作stream程,就可以轻松实现。 :P

  1. 这不取决于您是否将REST服务器用于Web应用程序或任何其他客户端。 如果互联网上提供的服务,你应该考虑任何客户端应用程序作为“敌人”。 我的意思是你不应该依赖任何“可信”的客户端应用程序,如果客户端获得安全资源,你应该总是执行身份validation。 资源是否安全,取决于您的应用程序。 在这两种情况下,我都倾向于使用oauth2。 如果资源不安全,我使用Client Credentials( http://tools.ietf.org/html/rfc6749#section-1.3.4 ),如果安全,我使用Access Token( http://tools.ietf.org/ html / rfc6749#section-1.4 )。 它可以让你保持同样的技术,并在需要的时候轻松地改变未来的事情。 基于我个人的经验,我创build了模块化的( https://github.com/vedi/oauthifizer )。 它实际上是一个围绕passport.js的包装,这使得它在这些特殊情况下更加友好。

  2. 你可以看看这篇文章: http : //aleksandrov.ws/2013/09/12/restful-api-with-nodejs-plus-mongodb/ 。 再次,您可以考虑尝试restifizer( https://github.com/vedi/restifizer ) – 另一个模块,它允许您更快地创buildRESTful服务。 有一个简短的例子: https : //github.com/vedi/restifizer-example

希望它会有所帮助。