首页 > 解决方案 > 在 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 中的状态查询中传递令牌似乎以某种方式存在安全威胁)

那么,是否可以设置标题(或其他一些解决方法)?

标签: node.jsredirectoauthhttp-headers

解决方案


推荐阅读