【第82课】获取Token并检验Token的有效期

举报
云小萌 发表于 2021/06/26 14:44:39 2021/06/26
【摘要】 本节操作介绍获取Token和检验Token有效期的操作步骤。

获取Token并检验Token的有效期

云小课.jpg

操作场景

Token的有效期为24小时,获取Token后建议及时保存,避免频繁调用。无论是否重新获取Token,在有效期内的Token始终有效。使用Token前请确保Token离过期有足够的时间,防止调用API的过程中Token过期导致调用API失败。

针对用户调用接口中常常出现的Token过期导致的调用失败问题,我们介绍了获取Token并检验Token有效期的方法。

若Token即将超期(无法满足一次完整的API调用或者完整的一套组合的调用)则需要重新获取Token,防止调用过程中Token超期,调用中断。或推荐您使用SDK,采用AK/SK方式认证鉴权。

操作视频及相关链接

获取Token

接口调用前需要认证鉴权,因此需要提前获取token信息。后续调用API的消息头中“X-Auth-Token”的值即为Token值。

本例以获取华东-上海二区域的Token为例:

  • 请求URI:POST https://iam.cn-east-2.myhuaweicloud.com/v3/auth/tokens

  • 请求消息头:Content-Type=application/json

  • 请求消息体:

    {
        "auth": {
            "identity": {
                "methods": [
                    "password"
                ],
                "password": {
                    "user": {
                        "name": "请填写用户名",
                        "password": "用户登录密码",
                        "domain": {
                            "name": "用户所属的帐号名称"
                        }
                    }
                }
            },
            "scope": {
                "project": {
                    "name": "区域名称,本例为cn-east-2"
                }
            }
        }
    }
    
  • 查看获取的Token:单击响应头,x-subject-token的取值即为获取的Token。请妥善保存Token信息,在后续的创建云服务器的请求头信息中需要使用Token认证。

    General:
       Request URL: https://iam.cn-east-2.myhuaweicloud.com/v3/auth/tokens
       Request Method: POST
       Status Code: 201
    Response Headers:
       cache-control: no-cache, no-store, must-revalidate
       connection: keep-alive
       content-length: 18401
       content-type: application/json; charset=UTF-8
       date: Thu, 27 May 2021 01:24:49 GMT
       expires: Thu, 01 Jan 1970 00:00:00 GMT
       pragma: no-cache
       server: api-gateway
       strict-transport-security: max-age=31536000; includeSubdomains;
       via: proxy A
       x-content-type-options: nosniff
       x-download-options: noopen
       x-frame-options: SAMEORIGIN
       x-iam-trace-id: token_cn-east-2_null_9bbec3983f3c7a5c146e709251760467
       x-request-id: d7796611318416bc8ffb2948a47fede8
       x-subject-token: MIISMAYJKoZIhvcNAQ...7xMUw==
       x-xss-protection: 1; mode=block;
    
  • 查看Token过期时间:响应体中“expires_at”表示该Token过期时间。

    {
    	"token": {
    		"expires_at": "2021-05-28T01:24:49.905000Z",
            ...
    	}
    }
    

检验Token的有效期

调用API时判断Token有效期是否充足,若您的应用程序缓存了Token,建议每12小时刷新一次Token。以确保Token有足够长的有效期。

您还可以主动查询某个Token的过期时间。通过调用检验Token有效性的接口查看Token的有效时期。

您可以在API Explorer中直接运行调试该接口。

本例以检验华东-上海二区域的Token为例:

  • 请求URI:GET https://iam.cn-east-2.myhuaweicloud.com/v3/auth/tokens

  • 请求消息头:

    • Content-Type=application/json;charset=utf8

    • X-Auth-Token:管理员校验本帐号中IAM用户的token的有效性:拥有Security Administrator权限的token。

      IAM用户校验自己token的有效性:该IAM用户的token(无需特殊权限)。

      本例中使用的是IAM用户因此X-Auth-Token与待校验的Token相同。

    • X-Subject-Token:待校验的token。

  • 查看Token过期时间:响应体中“expires_at”表示该Token过期时间。

    若Token即将超期(无法满足一次完整的API调用或者完整的一套组合的调用)则需要重新获取Token,防止调用过程中Token超期,调用中断。

    {
    	"token": {
    		"expires_at": "2021-05-28T01:24:49.905000Z",
            ...
    	}
    }
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。