我正在尝试创建一个Hubot插件,将 Cloud Foundry 事件的通知发送到我们的聊天室,但几天来我一直在反对 API auth。本质上,我正在尝试消费:
cf curl /v2/events
但我试图通过 Node.js 而不是通过CLI进行等效的底层调用。根据我对 OAuth2 的阅读,只读的 not-acting-on-behalf-of-a-user server-side-only 应用程序是客户端凭据的一个很好的用例。我找不到支持客户端凭据的 Node CF 客户端库,所以我尝试自己做……不成功。这是我在bash中尝试过的:
CLIENT_ID=hubot-cf-test
CLIENT_SECRET=mysecret
uaac client add $CLIENT_ID --secret $CLIENT_SECRET --scope uaa.none --authorized_grant_types "client_credentials"
curl -X POST --user "$CLIENT_ID:$CLIENT_SECRET" -d 'grant_type=client_credentials' https://uaa.mycloudfoundry.com/oauth/token
# copy in access_token value from previous response
curl -H "Authorization: Bearer eyJhbGc..." https://api.mycloudfoundry.com/v2/events
这给了我
{
"code": 1000,
"description": "Invalid Auth Token",
"error_code": "CF-InvalidAuthToken"
}
我做错了什么愚蠢的小事?提前致谢!
PS这是我在 Hubot 插件上的进展,如果有人感兴趣的话。