2014-09-01 146 views
4

我试图围绕构建基于express.js/node.js的REST API的大脑。我有几个问题...我是否需要Oauth2用于我的Web应用程序API

  1. 我是否需要基于令牌/ OAuth的1或2的安全性我的API,如果我只关心一个Web应用程序,现在(不一定是手机应用)

  2. 是否有任何资源可以学习如何从头开始构建?我已经从字面上阅读了前3页的Google搜索“使用oauth2认证express.js休息api”,但我仍然没有把握它。

+1

Oauth是关于签署第三方客户端的请求,如果您不想创建公共API,则不需要它。节点有明确的资源或重新确定哪些是好的起点。 – inf3rno 2014-09-08 22:07:45

回答

4

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

对于你的问题:

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

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

2)您首先需要掌握OAuth的概念。一旦您了解了OAuth的工作原理,那么使用您选择的语言实现它非常容易。 这里有一些很好的依据是你如何理解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的工作流程,你可以很容易地实现它。 :P

+2

我正在创建一个SAAS应用程序,我想我只是想用基本的电子邮件/ md5加密密码,就像我会在PHP中构建它一样。我正在读oauth,看起来并不像我需要的那样。我不打算这是第三方api,所以只是为了让用户来我的网站和登录,我认为一个简单的登录解决方案,如用户名/密码检查数据库就足够了。同意还是不同意? – 2014-09-01 20:30:52

+1

似乎够合理。如果您觉得自己需要OAuth,可以随时添加OAuth。 – shieldstroy 2014-09-01 23:17:11

+1

如果是这样的话,那么我认为你不需要OAuth :) – Ninz 2014-09-02 15:28:42

0
  1. 它不取决于您是否将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的一个包装,这使得它在这些特殊情况下更加友好。

  2. 你可以看看这篇文章: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

希望它会有所帮助。

相关问题