更新时间:2025-08-19 GMT+08:00
分享

生成Token

功能介绍

应用服务器可调用此接口生成Token

Token作为接口认证和鉴权凭据,应用服务器调用平台业务接口时,必须携带Token,通常填写在头域 X-Auth-Token 中,常与头域 X-Instance-Id 配合使用。

Token生成后在有效期内有效。如用户角色发生变更,则此前为该用户生成的Token将会因被吊销而不可用。Token被吊销后,需调用本接口以签发出新的Token,应用服务器需使用新Token调用平台业务接口。

URI

POST /v1/iotfm/auth/tokens

请求参数

表1 请求Header参数

参数

是否必选

参数类型

描述

X-Instance-Id

String

参数说明:实例ID。通过访问智能设施云平台界面后获取,智能设施云平台资源均为实例级隔离,所有业务接口必须填写正确的实例ID才能被成功调用。

取值范围:长度8-36,只允许大小写字母、数字和-字符的组合。

表2 请求Body参数

参数

是否必选

参数类型

描述

auth

InstanceAuth object

参数说明:认证信息。

表3 InstanceAuth

参数

是否必选

参数类型

描述

identity

InstanceIdentity object

参数说明:认证参数。

表4 InstanceIdentity

参数

是否必选

参数类型

描述

methods

Array of strings

参数说明:获取token的方式。当前仅支持密码方式。

取值范围:选用如下三种方式之一:

  • password:密码方式;

  • access_key:AK方式;

  • assume_role:委托方式。

password

InstancePassword object

参数说明:密码信息,获取token方式为password时,此参数必选。

表5 InstancePassword

参数

是否必选

参数类型

描述

user

InstanceUser object

参数说明:用户。

表6 InstanceUser

参数

是否必选

参数类型

描述

id

String

参数说明:用户ID。

取值范围:长度1-64。

name

String

参数说明:用户名。

取值范围:长度1-64。

password

String

参数说明:密码。

取值范围:长度1-64。

响应参数

状态码:201

表7 响应Header参数

参数

参数类型

描述

X-Subject-Token

String

参数说明:签名后的token。

表8 响应Body参数

参数

参数类型

描述

token

InstanceToken object

参数说明:Token结构体。

取值范围:长度1-64。

表9 InstanceToken

参数

参数类型

描述

issued_at

String

参数说明:token颁发时间,格式为yyyy-MM-dd'T'HH:mm:ss.SSS'Z'。

取值范围:长度1-64。

expires_at

String

参数说明:token过期时间,格式为yyyy-MM-dd'T'HH:mm:ss.SSS'Z'。

取值范围:长度1-64。

methods

Array of strings

参数说明:获取token的方式。

取值范围:长度固定为1。

roles

Array of Role objects

参数说明:角色列表。

取值范围:长度1-32。

user

InstanceUserRsp object

用户

表10 Role

参数

参数类型

描述

id

String

参数说明:权限ID。默认显示为0,非真实权限ID。

取值范围:长度1-64。

name

String

参数说明:权限名称。

取值范围:长度1-64。

表11 InstanceUserRsp

参数

参数类型

描述

id

String

参数说明:用户ID。

取值范围:长度1-64。

name

String

参数说明:用户名。

取值范围:长度1-64。

password_expires_at

String

参数说明:密码过期时间(UTC时间),“”表示密码不过期,格式为yyyy-MM-dd'T'HH:mm:ss.SSS'Z'。

取值范围:长度1-64。

请求示例

POST https://{endpoint}/v1/iotfm/auth/tokens

{
  "auth" : {
    "identity" : {
      "password" : {
        "user" : {
          "name" : "example_user",
          "password" : "xxxxxx"
        }
      },
      "methods" : [ "password" ]
    }
  }
}

响应示例

状态码:201

Created

{
  "token" : {
    "issued_at" : "2021-03-04T07:33:22.504Z",
    "expires_at" : "2021-03-05T07:33:22.504Z",
    "methods" : [ "password" ],
    "roles" : [ {
      "id" : "0",
      "name" : "te_admin"
    } ],
    "user" : {
      "id" : "43f76c518877464da16dc25a18cae71a",
      "name" : "example_user",
      "password_expires_at" : ""
    }
  }
}

状态码

状态码

描述

201

Created

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

500

Internal Server Error

相关文档