node.js - API授权策略

标签 node.js api authentication authorization

我有一个 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/

相关文章:

node.js - 使用brew将 Node 版本10.7.0降级到10.6.0

node.js - 是否有用于添加动态域或发件人电子邮件的 Mailjet API?

javascript - 使用 React.js 使用身份验证 token 调用 REST API

facebook - 通过 FB api 创建一个新的 FaceBook 页面

php - CakePHP Auth 组件不反射(reflect)用户数据的更改

javascript - 如何在保留数据的同时链接 Promises?

node.js - Sequelize hasOne 将不允许多行共享相同的关系

api - 使用 Facebook Connect 登录/创建帐户时,如何使用我自己网站的 API 进行身份验证?

ruby-on-rails - 设计 gem : Single project with multiple login strategies

authentication - 跨受信任域的 LDAP 用户身份验证