我有一个 Node js 中的 Web 应用程序,它使用 API 来处理网站内容的某些方面,例如新闻。该API是用node.js编写的,并指向mongodb数据库。
我想要一些关于此类需求的最佳授权策略的建议。我真的不需要用户名和密码解决方案(我不认为)。 Web 应用程序可以传递给 API 的某种静态 token ,以便只有拥有此 token 的应用程序才能浏览 API 返回的数据。我主要想停止任何使用 API 的旧应用程序。
最佳答案
这里是最好的博客,可以帮助您如何借助基本 HTTP 身份验证、Oauth1 和 Oauth2 对 Node js 中的 REST Api 进行身份验证
https://stormpath.com/blog/secure-your-rest-api-right-way
基本上有三种常用的身份验证类型
- 基本身份验证
- Oauth1.0a
- Oauth2
Http 基本身份验证
更方便,因为您可以轻松过期或重新生成 token 不影响用户的账户密码。
如果被泄露,漏洞仅限于API,而不是用户的master 帐号
每个帐户可以有多个 key (例如,用户可以拥有“test” 和“生产”键并排。)
Oauth1
OAuth 1.0 要求客户端为每个 API 调用发送两个安全 token ,并使用这两个 token 来生成签名。它要求 protected 资源端点有权访问客户端凭据才能验证请求。
Oauth2
生成 token 后,实际 API 调用不需要 OAuth 2.0 签名。它只有一个安全 token 。
Here描述了 OAuth 1.0 和 2.0 之间的区别以及两者的区别。
关于node.js - API授权策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37113916/