我正在使用 python脚本(2.7.x)尝试通过tyk网关连接到第三方api 。终端 api期望在请求标头中有一个身份验证令牌,而 tyk还需要在请求标头中包含自己的身份验证令牌。
现在我面临的问题是:
当我尝试通过tyk向第三方应用程序发出请求时,应用程序无法识别在标头中传递的身份验证令牌。
通过调试,我能够确定tyk没有将身份验证标头传递给应用程序。
我正在使用以下代码来发出请求
request.post("https://myurl.com",
data={"data": data_a},
headers={"Authorization": "Basic <TYK_TOKEN>, Bearer <APP_TOKEN> })
我尝试过的事情:
- 尝试先传递应用令牌,然后再传递tyk令牌,然后请求将不会传递tyk授权。
- 尝试仅在请求中传递应用令牌,然后请求将不会通过tyk授权。
- 尝试在“ Application-Authorization”标题下传递应用程序令牌,并在“ Authorization”标题下传递tyk令牌,那么请求将不会通过应用程序授权。
请提供解决方案。
谢谢
提前
1 个答案:
答案 0 :(得分:0)
来自Tyk的狮子座。
因此,基本上,您的上游受auth令牌保护,而您自己的API也受令牌保护。
如果您的第三方API具有静态api密钥,则可以将其作为全局标头嵌入到所有请求中:
如果您有一个动态的第三方密钥,该密钥因用户而异,则可以将其嵌入到密钥元数据中,例如“ upstream_api_key”字段,并添加具有动态值的全局标头:“ $ tyk_meta.upstream_api_key” 。
如果您的用户需要传递此令牌,并且需要将其转发到上游,则Tyk和上游身份验证应在不同的HTTP标头中进行。
希望有帮助!