获取security token | POST /token/v2

功能

应对类似WebAR,小程序等需求,建议通过APIKey获取Access Token请求API,不建议通过APIKey签名方式,这样可以有效避免web等程序上暴露自己的API Secrret

STS的服务器URL如下,必须使用https接入访问点。

认证

请求参数:

字段名

类型

必须

描述

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