获取security token | POST /token/v2

功能

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

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

认证

请求参数:

字段名

类型

必须

描述

apikey

base64编码字符串

从官网开发者中心获取,32位apiKey

expires

整数型

生成Security Token的有效时间, 单位为秒

acl

字符串

参数是各个服务控制结构的数组。用于在apiKey范围内临时控制更小范围权限。默认是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为JSON.stringify以后字符串格式请求
  "acl": [{
    "service": "ecs:armap",
    "effect": "Allow",
    "resource": [
        "Your spatialmap cloud ID"
    ],
    "permission": ["READ"]
  }],
  */
  "signature": "6e71edb158...b206acf7eb"
}

返回说明:

acl: 字符串格式。由服务控制列表组成,每个服务控制内包括{service, effect, resource, permission} 组成。

service: 服务类型,暂时只支持spatialmap, 后续oc, ai/body, ai/hand, etc会陆续支持统一的apikey

resource: 具体服务空间UUID,例如spatialmap下开通一个spatial map 空间对应一个uuid

effect: 指定与该条acl配置项匹配的Request能否执行, 取值 Allow, Deny

permission: 权限取值(READ | WRITE)

返回

{
  "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