API授权策略
我在节点js中有一个web应用程序,它会消耗一些API,例如新闻等网站内容的某些方面。 API是用node.js编写的,指向一个mongodb数据库。
对于这种types的需求的最佳授权策略,我希望得到一些build议。 我真的不需要用户名和密码解决scheme(我不认为)。 Web应用程序可以传递给API的某种静态令牌,以便只有拥有此令牌的应用程序才能浏览由API返回的数据。 我主要是想停止使用API的旧应用程序。
这里是最好的博客,可以帮助您如何在基本HTTP身份validation,Oauth1和Oauth2的帮助下在节点js中validationREST Api
https://stormpath.com/blog/secure-your-rest-api-right-way
基本上有三种通常使用的authenticationtypes
- 基本authentication
- Oauth1.0a
- 的oauth2
Http基本authentication
-
更方便,因为您可以轻松过期或重新生成令牌,而不会影响用户的帐户密码。
-
如果受到威胁,漏洞仅限于API,而不是用户的主帐户
-
每个账户可以有多个密钥(例如,用户可以并排“testing”和“生产”密钥)。
您好!OAuth1
OAuth 1.0要求客户端为每个API调用发送两个安全令牌,并使用两者来生成签名。 它要求受保护的资源端点有权访问客户端凭证以validation请求。
的oauth2
一旦令牌生成,OAuth 2.0签名就不需要实际的API调用。 它只有一个安全令牌。
这里描述了OAuth 1.0和2.0之间的区别以及两者的区别。
- 在HTTP基本authentication中,为什么存储令牌更好?
- 如何保护TCP连接 – nodejs?
- 如何devise没有SSL支持的API?
- 通过我的REST API和Facebook进行用户身份validation
- 什么是sails.js最好的authentication方法?
- 将未经身份validation的用户redirect到使用node.js和angularjs的默认URL
- Mongoose:CastError:强制转换为ObjectId在path“_id”处的值“me”失败
- 如何使用Django身份validation在Node应用程序中对用户进行身份validation?
- firebase.auth()。createUserWithEmailAndPassword Undefined不是一个函数