获取security token | POST /token/v2¶
功能¶
应对类似WebAR,小程序等需求,建议通过APIKey获取Access Token请求API,不建议通过APIKey签名方式,这样可以有效避免web等程序上暴露自己的API Secrret
STS的服务器URL如下,必须使用https接入访问点。
中国1区: https://uac.easyar.com
认证¶
是
请求参数:¶
字段名 |
类型 |
必须 |
描述 |
---|---|---|---|
apikey |
字符串 |
是 |
从官网开发者中心获取,32位apiKey |
expires |
整数型 |
是 |
生成Security Token的有效时间, 单位为秒 |
acl |
字符串 |
否 |
参数是各个服务控制结构的数组。用于在apiKey范围内临时控制更小范围权限。默认是apiKey范围所有权限 |
timestamp |
整数型 |
是 |
时间戳,单位为毫秒 |
signature |
字符串 |
是 |
acl说明:¶
acl: 字符串格式。由服务控制列表组成,每个服务控制内包括{service, effect, resource, permission} 组成。
service: 服务类型,当前支持 ecs:crs(云识别),ecs:spatialmap(SpatialMap),ecs:cls(云定位)
resource: 具体服务的app id,例如spatialmap下开通一个spatial map对应一个app id
effect: 指定与该条resource配置项匹配的Request能否执行, 取值 Allow, Deny
permission: 权限取值(READ | WRITE)
样例¶
acl(access control list),设置token允许访问哪些资源,JSON.stringify之后的字符串。可以不传入,则是允许apiKey下关联的所有资源。
POST /token/v2 HTTP/1.1
Host:
Date: Mon, 1 Jan 2018 00:00:00 GMT
Content-Type: application/json
{
"apiKey": "Your APIKey",
"expires": 3600,
"timestamp": 1550469858000,
"acl": "[{\"service\":\"ecs:spatialmap\",\"effect\":\"Allow\",\"resource\":[\"SpatialMap AppId\"],\"permission\":[\"READ\"]}]",
"signature": "6e71edb158...b206acf7eb"
}
返回
{
"result": {
"apiKey": "1ab2c85790aefd1eeeccf030211cf252",
"expires": 3600,
"token": "Prn3iSlG4...suoHg==",
"expiration": "2019-02-18T07:04:19.478Z"
},
"timestamp": 1550469858000,
"msg": "api key invalid",
"statusCode": 0
}
错误返回
{
"timestamp": 1550469858000,
"message": "api key invalid",
"statusCode": 4001011
}
返回说明:¶
token: 正确响应返回后,在后续业务请求的http请求头部,将token加入header {“Authorization”: "Prn3iSlG4...suoHg=="}。记得业务API请求参数时指定AppId, 即可直接认证通过。
expiration: Security Token的到期时间,有效期过后需要重新申请token