我在APIGEE BaaS中创建了一个集合,现在正在公开一个API,它可以从这个集合以及其他后端服务中混合数据。从API调用后端服务时,我使用的是accessstoken。但是,默认情况下,accesstoken的到期时间设置为604800毫秒。我尝试使用以下API调用
更改默认ttl PUT:https://api.usergrid.com/<myorg>/<myapp>?client_id=<client_id>&client_secret=<client_secret> {"accesstokenttl":0}
它给了我一个如下的回复,这似乎表明请求已经完成。
"uri": "https://api.usergrid.com/<myorg>/<myapp>",
"entities": [
{
"uuid": "93495580-ed20-11e3-89d5-25d72fde3d7e",
"type": "application",
"name": "<myorg>/<myapp>",
"created": 1402020991714,
"modified": 1402535205960,
"accesstokenttl": 0,
但是,当我尝试使用以下请求获取新的accessstoken时,它仍然显示设置为604800毫秒的到期时间。
POST:https://api.usergrid.com/<myorg>/<myapp>/token {"grant_type":"client_credentials", "client_id":<client_id>, "client_secret":<client_secret>
给我以下回应:
{
"access_token": "UREDStK1padfdffayGfNfoYtCiAAAAUaxsjHnfhkLkG1abYWVPC_MMWD3VFRaHyA",
"expires_in": 604800,
这里有什么我想念的吗?
答案 0 :(得分:0)
您已正确更新了应用程序级别的最大令牌到期时间(总结):
PUT: https://api.usergrid.com/{org}/{app}/?client_id={app_client_id}&client_secret={app_client_secret}
使用JSON有效负载(不要忘记设置Content-Type: application/json
标头!)
{
"accesstokenttl":31104000000
}
其中tokenttl是以毫秒为单位的时间戳(或非过期,如您在示例中所做的那样)。
您现在需要做的是在令牌调用上设置TTL属性:
POST https://api.usergrid.com/{org}/{app}/token
{
"username":"{username}",
"password":"{password}",
"grant_type":"password",
"ttl":"31104000000"
}
这是指向Apigee docs的链接,详细讨论了令牌TTL。