
# 如何通过Postman获取用户Token
Postman是网页调试与辅助接口调用的工具，具有界面简洁清晰、操作方便快捷的特性，可以处理用户发送的HTTP请求，例如：GET，PUT、POST，DELETE等，支持用户修改HTTP请求中的参数并返回响应数据。
Token是用户的访问令牌，承载了用户的身份、权限等信息，用户调用API接口时，需要使用Token进行鉴权。
本章节指导用户如何通过Postman获取用户Token。更多参数说明请参见[获取IAM用户Token](https://support.huaweicloud.com/api-iam/iam_30_0001.html)。
![](https://support.huaweicloud.com/face_faq/public_sys-resources/note_3.0-zh-cn.png)
- **Token的有效期**
  关于Token有效期的详细说明请参见[获取IAM用户Token（使用密码）](https://support.huaweicloud.com/api-iam/iam_30_0001.html)。使用Token前请确保Token离过期有足够的时间，防止调用API的过程中Token过期导致调用API失败。
  重新获取Token，不影响已有Token有效性。如果在Token有效期内进行如下操作，当前Token将立即失效：
  - 删除/停用IAM用户。
  
  - 修改IAM用户密码、访问密钥。
  
  - IAM用户权限发生变化（如账号欠费无法访问云服务、申请公测通过、IAM用户权限被修改等）。
   
- **非华为云账号获取Token**
  - 如果您的华为云账号已升级为华为账号，将不支持获取账号Token，建议您为自己创建一个IAM用户，授予该用户必要的权限，获取IAM用户Token。
  
  - 如果您是第三方系统用户，直接使用联邦认证的用户名和密码获取Token，系统会提示密码错误。请先在华为云的登录页面，通过"忘记密码"功能，设置**华为云** **账号密码**。
   
 
#### 前提条件
已安装并注册Postman。
![](https://support.huaweicloud.com/face_faq/public_sys-resources/note_3.0-zh-cn.png)
- 如果您没有安装Postman，建议[通过API Explorer获取用户Token](https://support.huaweicloud.com/face_faq/face_06_0036.html)。
- 如需安装Postman，建议选择支持Header超过32K的Postman版本，否则可能会报Header溢出错误。
 
#### 操作步骤
1. 编辑获取用户Token接口的Request URL、Header、Body，进行具体的API调用。 
   - **Request URL**
     格式为：https://*IAM地区与终端节点地址* /*API接口URI*
     1. 访问网址：[地区与终端节点](https://developer.huaweicloud.com/endpoint)，获取IAM区域与终端节点地址。
        图1IAM区域与终端节点   
        ![](https://support.huaweicloud.com/face_faq/zh-cn_image_0000001758514973.png "点击放大")
        
        
     
     2. 访问网址：[获取用户Token](https://support.huaweicloud.com/api-iam/iam_30_0001.html)，获取API接口的URI。
        以cn-north-1为例，则Request URL为：https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens
        
     
     3. 选择API接口获取方式，并将Request URL填写至postman中。
        图2Request URL示例   
        ![](https://support.huaweicloud.com/face_faq/zh-cn_image_0000001710875384.jpg "点击放大")
        
        
       
   
   - **Request Header**
     key：Content-Type，value：application/json;charset=utf8
     图3Headers参数示例   
     ![](https://support.huaweicloud.com/face_faq/zh-cn_image_0000001758634805.jpg "点击放大")
     
     
   
   - **Request Body**
     修改Request Body样例中参数。
     ```
     {
     "auth": {
     "identity": {
     "methods": [
                                     "password"
                              ],
     "password": {
     "user": {
     "domain": {
     "name": "账号名"
     },
     "name": "IAM用户名",
     "password": "IAM用户密码"
     }
     }
     },
     "scope": {
     "project": {
     "name": "人脸识别服务部署的区域，如cn-nouth-4"
     }
     }
     }
       }
     ```
     ![](https://support.huaweicloud.com/face_faq/public_sys-resources/note_3.0-zh-cn.png)
     登录获取Token的IAM用户，并获取账号名、IAM用户名，方法请参见：[获取账号、IAM用户、项目名称和ID](https://support.huaweicloud.com/api-iam/iam_17_0002.html#section0)。
     
   
   
   
   
2. 单击"Send"，发送API请求。 
   图4发送API请求   
   ![](https://support.huaweicloud.com/face_faq/zh-cn_image_0000002069126913.png "点击放大")
   
   
   
3. 在返回的响应头中查看获取的用户Token，用户调用IAM其他API接口时，可以使用该Token进行鉴权。 
   图5获取Token   
   ![](https://support.huaweicloud.com/face_faq/zh-cn_image_0000001710715900.jpg "点击放大")
   ![](https://support.huaweicloud.com/face_faq/public_sys-resources/note_3.0-zh-cn.png)
   - 如果返回值为401，表示认证失败，请确认Request Body中请求参数填写正确后重新发送请求。
   
   - 如果返回值为400，表示body体格式错误，请检查body体格式是否满足json语法。详细错误请参考[获取token返回值](https://support.huaweicloud.com/api-iam/iam_30_0001.html#section7)。
   
   - 如果您的调试结果异常，提示*"Header Overflow"* ，可以参考[故障处理]解决Header溢出问题。
    
   
   
 
 #### 故障处理
目前发现v7.25.0、v7.26.0及以上版本Postman 由于配置问题，无法正常获取用户Token，会有Header Overflow异常报错。
- **方法一：**
  建议使用低版本Postman，经测试 V 5.xx 版本可以正常访问。
  
- **方法二：**
  使用curl命令获取Token，修改如下样例中的参数：
  ```
  curl -ik -X POST -H 'Content-Type=application/json;charset=utf8' -d '{"auth": {"identity": {"methods": ["password"],"password": {"user": {"domain": {"name": "账号名"},"name": "IAM用户名","password": "IAM用户密码"}}},"scope": {"project": {"name": "项目名称"}}}}' https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens
  ```
  
- **方法三：**
  通过向Postman传递附加环境变量NODE_OPTIONS=--max-http-header-size=16384 (16KB)，指定最大HTTP标头大小（以字节为单位）。
  以下分别是在不同操作系统进行操作的命令行：
  - macOS
    ```
    NODE_OPTIONS=--max-http-header-size=16384 /Applications/Postman.app/Contents/MacOS/Postman
    ```
    
  
  - Linux
    ```
    NODE_OPTIONS=--max-http-header-size=16384 /path/to/Postman/Postman
    ```
    
  
  - Windows
    ```
    set NODE_OPTIONS=--max-http-header-size=16384 
    C:\users\<username>\AppData\local\Postman\Postman.exe
    ```
    
   
 
