首页 > 解决方案 > 在使用基于 OAuth 流的身份验证的服务中验证来自后端以及来自客户端的请求

问题描述

我有一个 API,它使用 OAuth 身份验证 ( hydra ) 来验证来自用户浏览器的请求。
我还想从另一个后端(NodeJS)向相同的 API 发送请求。我有点困惑什么是最好的方法。

当前的身份验证机制使用刷新令牌 (1h)。

我正在考虑在 hydra 中为后端创建另一个客户端,但后端也会像浏览器一样使用与刷新令牌相同的方法(以前从未见过),这似乎很奇怪。

任何有关如何解决此问题的帮助将不胜感激。

标签: node.jsauthenticationoauth

解决方案


所以......您可能需要在这里考虑几个概念......

从概念开始,OAuth 2.0 系列标准就区分了私有(受信任)和公共(可能容易受到攻击)客户端。您在浏览器中运行的客户端属于后一类,因此大多数有经验的 OAuth 开发人员会争辩说,对此客户端使用刷新令牌是不合适的。对于用 node 编写的后端服务(即使它是一个简单的后端换前端),这是一个完全不同的故事 - 可以使用和存储刷新令牌。

但是,如果您的 node.js 后端在活动的客户会话“之外”工作,即即使没有客户主动与前端交互,也尝试访问客户数据,您可能还需要考虑 OAuth 提供的机器对机器流2.0 -客户端凭证流。


推荐阅读