繁体   English   中英

在WSO2 API管理器中生成使用者密钥和使用者秘密

[英]Generating consumer key and consumer secret in WSO2 API Manager

我想将WSO2 API管理器与一个网站集成在一起,以便用户无需登录到API商店。

从我所看到的是有一个绊脚石,因为用户需要单击商店中的“生成”按钮才能首先生成消费者密钥和机密。

完成此操作后,就可以调用订阅API并生成记录的API,如下所述:

$ curl -b cookies http://localhost:9763/store/site/blocks/subscription/subscription-list/ajax/subscription-list.jag?action=getAllSubscriptions
{
   "error" : false,
   "subscriptions" : [
      {
      {
         "sandRegenarateOption" : true,
         "prodKey" : "2486e65cbac4e372fb319375744fb",
         "subscriptions" : [
            {
               ...
               "prodConsumerSecret" : "Tx9i9WYu6_a3qqW08bF7jEG660",
               "prodConsumerKey" : "VfS5r5u4rFhec2vVBlFosxRgcE",
               "prodAuthorizedDomains" : "ALL"
               ...
            }
         ],
         ...
         "prodConsumerSecret" : "Tx9i9WYu6_a3qqW08bF7jEG660",
         "prodConsumerKey" : "VfS5r5u4rFhec2vVBlFosxRgcE"
         ...
      }
   ]
}

但是,在浏览器中单击“生成”按钮之前,以上null

当我尝试使用建议时:

$ curl -X POST -b cookies http://localhost:9763/store/site/blocks/subscription/subscription-add/ajax/subscription-add.jag -d "action=generateApplicationKey&application=4&keytype=PRODUCTION&provider=admin&tier=Unlimited&version=0.1&callbackUrl=&authorizedDomains="

服务器日志:

ERROR - APIStoreHostObject Error while obtaining the application access token for the application:4
org.wso2.carbon.apimgt.api.APIManagementException: Application should be approved before registering.
    at org.wso2.carbon.apimgt.impl.APIConsumerImpl.requestApprovalForApplicationRegistration(APIConsumerImpl.java:1678)
    at org.wso2.carbon.apimgt.impl.UserAwareAPIConsumer.requestApprovalForApplicationRegistration(UserAwareAPIConsumer.java:34)
    at org.wso2.carbon.apimgt.hostobjects.APIStoreHostObject.jsFunction_getApplicationKey(APIStoreHostObject.java:649)

但是根据getApplications API,它已经被批准:

curl -b cookies   http://localhost:9763/store/site/blocks/application/application-list/ajax/application-list.jag?action=getApplications
{
   "applications" : [
      ...
      {
         "tier" : "Unlimited",
         "status" : "APPROVED",
         "callbackUrl" : "",
         "name" : "app2",
         "id" : 4,
         "description" : ""
      }
   ],
   "error" : false
}

还有其他想法吗?

我看不到有任何直接的方法可以完成该任务。 但是,您可以利用wso2 API管理员公开的Store API并检索所有订阅,并从中过滤所需的ConsumerKey和ConsumerSecret。

我已经尝试过了,对我来说效果很好:)

您可以尝试以下REST调用

curl -X POST -b cookies http://localhost:9763/store/site/blocks/subscription/subscription-add/ajax/subscription-add.jag -d "action=generateApplicationKey&application=DefaultApplication&keytype=PRODUCTION&provider=admin&tier=Unlimited&version=1.0.0&callbackUrl=&authorizedDomains="

订阅前需要提升。 您需要使用“已发布”状态和“ updateStatus”操作调用“ /site/blocks/life-cycles/ajax/life-cycles.jag”端点。 处于升级状态后,您可以订阅它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM