華為云計算 云知識 獲取Token并檢驗Token的有效期
獲取Token并檢驗Token的有效期

  
相關(guān)資料鏈接

了解使用 API購買 ECS的常見問題和處理方法

獲取Token 并檢驗Token的有效期

操作場景

Token的有效期為24小時,獲取Token后建議及時保存,避免頻繁調(diào)用。無論是否重新獲取Token,在有效期內(nèi)的Token始終有效。使用Token前請確保Token離過期有足夠的時間,防止調(diào)用API的過程中Token過期導致調(diào)用API失敗?! ?/p>

針對用戶調(diào)用接口中常常出現(xiàn)的Token過期導致的調(diào)用失敗問題,我們介紹了獲取Token并檢驗Token有效期的方法?!?/p>

若Token即將超期(無法滿足一次完整的API調(diào)用或者完整的一套組合的調(diào)用)則需要重新獲取Token,防止調(diào)用過程中Token超期,調(diào)用中斷?;蛲扑]您使用SDK,采用AK/SK方式認證鑒權(quán)?! ?/p>

獲取Token


接口調(diào)用前需要認證鑒權(quán),因此需要提前獲取token信息。后續(xù)調(diào)用API的消息頭中“X-Auth-Token”的值即為Token值。

本例以獲取華東-上海二區(qū)域的Token為例:  

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

請求消息頭:Content-Type=application/json 

請求消息體:   

{
    "auth": {
        "identity": {
            "methods": [
                "password"
            ],
            "password": {
                "user": {
                    "name": "請?zhí)顚懹脩裘?,
                    "password": "用戶登錄密碼",
                    "domain": {
                        "name": "用戶所屬的帳號名稱"
                    }
                }
            }
        },
        "scope": {
            "project": {
                "name": "區(qū)域名稱,本例為cn-east-2"
            }
        }
    }
}

  查看獲取的Token:單擊響應頭,x-subject-token的取值即為獲取的Token。請妥善保存Token信息,在后續(xù)的創(chuàng)建 云服務器 的請求頭信息中需要使用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
   ...
   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的有效期

調(diào)用API時判斷Token有效期是否充足,若您的應用程序緩存了Token,建議每12小時刷新一次Token。以確保Token有足夠長的有效期。

您還可以主動查詢某個Token的過期時間。通過調(diào)用檢驗Token有效性的接口查看Token的有效時期。

本例以檢驗華東-上海二區(qū)域的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權(quán)限的token。
 

IAM用戶校驗自己token的有效性:該IAM用戶的token(無需特殊權(quán)限)。 

本例中使用的是IAM用戶因此X-Auth-Token與待校驗的Token相同。

  X-Subject-Token:待校驗的token?! ?/p>

查看Token過期時間:響應體中“expires_at”表示該Token過期時間。

若Token即將超期(無法滿足一次完整的API調(diào)用或者完整的一套組合的調(diào)用)則需要重新獲取Token,防止調(diào)用過程中Token超期,調(diào)用中斷。
 

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