node.js - 在 OAuth 重定向 URI 中设置标头
问题描述
我的服务器正在使用作为标头发送的令牌来验证 API 请求。所有请求都强制通过该身份验证检查。
现在,我想使用 OAuth 2.0 获取一个令牌来访问一些第三方 API,因此我将所有凭据传递给他们的 OAuth 服务,包括重定向 URI。但问题是当第三方服务重定向到提供的 URI 时,我无法对用户进行身份验证,因为它缺少该身份验证标头。
这可能会有所帮助-如何在 express js 中执行 res.redirect 时传递标头,但不幸的是,Node.js 不支持在重定向时设置标头。
在不影响其他 API 的情况下,我看不到任何更改中间件的方法,因为如果这是可能的,我会简单地为此维护用户会话。即使我添加了会话检查,我也无法禁用标头检查,所以会话的事情现在对我来说似乎是徒劳的。
现在,我认为我剩下的唯一选择是尝试将标头设置为重定向请求。这个问题是关于同一件事的——Redirect to OAuth URL with headers,但它是关于在 Python 中为 OAuth 创建一个自定义响应对象。我认为我的第三方 OAuth 服务不允许这样做。
我想到的最后一件事是以某种方式将令牌传递给状态查询并以某种方式将相同的授权返回到标题中。
这是授权请求:
function getToken() {
//some checks here
res.redirect(BASE_THIRD_PARTY_URL + CREDENTIAL_QUERIES + REDIRECT_URI + "state="+TOKEN)
}
(加上在 URL 中的状态查询中传递令牌似乎以某种方式存在安全威胁)
那么,是否可以设置标题(或其他一些解决方法)?
解决方案
推荐阅读
- aws-lambda - 如何使用 terraform 更改 AWS Lambda 中的临时目录
- python - 如何将此数学方程式编写为代码并将其打印为 3d 图形
- scripting - 如何在第一个完成后运行 2 个 PowerShell 脚本?
- c - c166 16位微处理器的c函数中的编译器错误
- lambda - 使用 Cloudformation 部署的服务器不工作
- .net - 使用查询参数重写 .NET URL
- python - 用户输入不同函数的参数 [Python]
- ios - 'FBSDKShareKit/FBSDKShareKit.h' 文件未找到
- flutter - 颤振上的同步融合图表包
- c# - 如何在 C# 中使用 NPOI 从现有 excel 文件中的列表中写入元素?