我在节点js中有一个Web应用程序,它为网站内容的某些方面(如新闻)使用API。 API用node.js编写,并指向mongodb数据库。
我想就这类要求的最佳授权策略提出一些建议。我真的不需要用户名和密码解决方案(我不这么认为)。 Web应用程序可以传递给API的某种静态令牌,以便只有具有此令牌的应用程序才能浏览API返回的数据。我主要想停止任何使用API的旧应用程序。
答案 0 :(得分:2)
这是最好的博客,可以帮助您在基本HTTP身份验证,Oauth1和Oauth2的帮助下如何在节点js中验证REST Api
https://stormpath.com/blog/secure-your-rest-api-right-way
基本上有三种类型的身份验证通常使用
Http基本身份验证
更方便,因为您可以轻松过期或重新生成令牌 不影响用户的帐户密码。
如果受到攻击,则漏洞仅限于API,而不是用户的主控 帐户
每个帐户可以有多个密钥(例如,用户可以拥有" test" 和"生产"钥匙并排。)
<强>您好!OAuth1 强>
OAuth 1.0要求客户端为每个API调用发送两个安全令牌,并使用它们来生成签名。它要求受保护资源端点可以访问客户端凭据以验证请求。
<强>的oauth2 强>
生成令牌后,实际API调用不需要OAuth 2.0签名。它只有一个安全令牌。
Here描述了OAuth 1.0和2.0之间的区别以及两者之间的区别。