更新时间:2022-08-16 GMT+08:00

校验Token的有效性

功能介绍

该接口用来校验Token的有效性,如果有效则返回Token的详细信息。

URI

GET /v3/auth/tokens

请求

  • Request Header参数说明

    参数

    是否必选

    类型

    说明

    X-Auth-Token

    String

    • 校验自己的Token有效性,使用自己的token即可,该token不需要具备特殊权限。
    • 校验本账号中其他用户的token有效性,需要具有Security Administrator权限的token。

    X-Subject-Token

    String

    待校验的token。

  • 查询参数说明

    参数

    是否必选

    类型

    说明

    nocatalog

    String

    如果设置该参数,返回的响应体中将不显示catalog信息。

  • 请求样例
    curl -i -k -H "X-Auth-Token:$token" -H "X-Subject-Token:$token" -X GET https://sample.domain.com/v3/auth/tokens

响应

  • Response Header参数说明

    参数

    是否必选

    类型

    说明

    X-Subject-Token

    String

    校验的token。

  • Response body参数说明

    参数

    是否必选

    类型

    描述

    token

    Object

    token信息列表。

  • token格式说明

    参数

    是否必选

    类型

    描述

    methods

    Array

    获取token的方式,例如:“password”。

    expires_at

    String

    token到期时间。

    issued_at

    String

    token产生时间。

    user

    Object

    示例:

    "user": { 
          "name": "username", 
          "id": "userid", 
          "password_expires_at":"2016-11-06T15:32:17.000000",
          "domain": { 
             "name": "domainname",
             "id": "domainid"
           } 
        }
    • user.name:用户名称。
    • user.id:用户ID。
    • domain.name:用户的账号名称。
    • domain.id:用户的账号的ID。
    • password_expires_at:可选,密码过期时间(UTC时间),“null”表示密码不过期。

    domain

    Object

    根据获取token的请求里的scope,判断是否返回该字段。

    示例:

    "domain": { 
          "name" : "domainame",     
          "id" : "domainid"
    }
    • domain.name账号名称。
    • domain.id账号的ID。

    project

    Object

    根据获取token的请求里的scope,判断是否返回该字段。

    示例:

    "project": { 
          "name": "projectname", 
          "id": "projectid", 
    }
    • project.name:project名称。
    • project.id:project的ID。

    catalog

    Json Array

    endpoints相关信息。

    示例:

    "catalog": [{
        "type": "identity",
        "id": "1331e5cff2a74d76b03da1225910e31d",
        "name": "iam",
        "endpoints": [{
            "url": "https://sample.domain.com/v3",
            "region": "*",
            "region_id": "*",
            "interface": "public",
            "id": "089d4a381d574308a703122d3ae738e9"
        }]
    }]
    • type:该接口所属的服务。
    • id:服务的id。
    • name:服务的名称。
    • endpoints:终端节点。
    • url:调用该接口的url。
    • region:服务的所属区域。
    • region_id:服务的所属区域id。
    • interface:接口状态,public表示为公开。
    • id:接口的id。

    roles

    Array

    Token的权限信息。

    示例:

    "roles" : [{ 
         "name" : "role1", 
         "id" : "roleid1" 
         }, { 
         "name" : "role2", 
         "id" : "roleid2" 
         } 
       ] 
  • Response样例
    {
      "token" : {
        "methods" : ["password"],
        "expires_at" : "2015-11-09T01:42:57.527363Z",
        "issued_at" : "2015-11-09T00:42:57.527404Z",
        "user" : {
          "domain" : {
          "id" : "default",
          "name" : "Default"
          },
          "id" : "ee4dfb6e5540447cb3741905149XXX...",
          "password_expires_at":"2016-11-06T15:32:17.000000",
          "name" : "admin"
        },
        "domain" : {
           "name" : "Default",
           "id" : "default"
        },
        "roles" : [{
           "name" : "role1",
           "id" : "roleid1"
           }, {
           "name" : "role2",
           "id" : "roleid2"
           }
      ]
      }
    }

状态码

状态码

说明

200

请求成功。

400

请求错误。

401

认证失败。

403

鉴权失败。

404

找不到资源。

503

服务不可用。