我们有一个正确响应的已部署API;但是它为Sandbox vs Production配置了不同的URL端点。
当我向API管理器发出请求时,无论我提交哪个承载令牌,它始终都是生产终点。身份验证就像我提交无效的承载令牌一样,我得到了未经身份验证的错误。
错误配置可能出现的任何线索?
(1.4.0版)
答案 0 :(得分:1)
在查看您提到的问题时,我认为您已使用'PRODUCTION'作用域访问令牌来调用您的SANDBOX端点。
在创建API时将两个不同的端点定义为沙箱URL和生产URL后,要调用它们,您需要根据其范围[PRODUCTION / SANDBOX]使用不同的访问令牌。
要从API调用SANDBOX端点,您需要使用SANDBOX访问令牌。 要查找这些生产和沙盒端点相关的密钥,您可以导航到APIStore->我的订阅页面,并在特定订阅中的'production'和'sandbox'部分下查看密钥。在每个'PRODUCTION / SANDBOX'密钥部分下在订阅页面中,您将看到一个单独的访问令牌和消费者密钥/秘密。
尝试调用API的SANDBOX端点,在APIStore的“我的订阅”页面中显示上面显示的沙箱访问令牌,否则您可以使用基于沙箱的使用者密钥/机密来生成沙箱范围的用户令牌[1]并使用这些令牌来调用基于API沙箱的端点。
生成沙箱范围用户令牌的示例cURL请求如下所示; curl -k -d“grant_type = password& username = xxx& password = xxx& scope = SANDBOX”-H“授权:基本base64encoded_SANDBOX_based_consumer密钥:secret,Content-Type:application / x-www-form-urlencoded”{{1 }}
[1] http://docs.wso2.org/wiki/display/AM140/Token+APIs#TokenAPIs-GeneratingusertokensGenerating