node.js - 在使用基于 OAuth 流的身份验证的服务中验证来自后端以及来自客户端的请求
问题描述
我有一个 API,它使用 OAuth 身份验证 ( hydra ) 来验证来自用户浏览器的请求。
我还想从另一个后端(NodeJS)向相同的 API 发送请求。我有点困惑什么是最好的方法。
当前的身份验证机制使用刷新令牌 (1h)。
我正在考虑在 hydra 中为后端创建另一个客户端,但后端也会像浏览器一样使用与刷新令牌相同的方法(以前从未见过),这似乎很奇怪。
任何有关如何解决此问题的帮助将不胜感激。
解决方案
所以......您可能需要在这里考虑几个概念......
从概念开始,OAuth 2.0 系列标准就区分了私有(受信任)和公共(可能容易受到攻击)客户端。您在浏览器中运行的客户端属于后一类,因此大多数有经验的 OAuth 开发人员会争辩说,对此客户端使用刷新令牌是不合适的。对于用 node 编写的后端服务(即使它是一个简单的后端换前端),这是一个完全不同的故事 - 可以使用和存储刷新令牌。
但是,如果您的 node.js 后端在活动的客户会话“之外”工作,即即使没有客户主动与前端交互,也尝试访问客户数据,您可能还需要考虑 OAuth 提供的机器对机器流2.0 -客户端凭证流。
推荐阅读
- database - 在 Couchbase 中交换存储桶
- node.js - 在 node.js 中调度最大并行 REST 调用/等待如何在节点中工作
- php - 第二页的 mPDF 索引
- angular - Get response of POST request in angular 6
- java - java csv文件打开和编辑
- c# - Auth0, with Authorization Extension & ASP.NET Authorization
- r - R select columns by name from vector
- java - combine regex for RegularExpressionValidator
- karate - 在第一种情况下使用 DBUtils 时出错
- c# - SQL 存储过程从 C# 代码返回 -1 但在直接执行时返回值