如何通过Postman获取用户Token
Postman是网页调试与辅助接口调用的工具,具有界面简洁清晰、操作方便快捷的特性,可以处理用户发送的HTTP请求,例如:GET,PUT、POST,DELETE等,支持用户修改HTTP请求中的参数并返回响应数据。
Token是用户的访问令牌,承载了用户的身份、权限等信息,用户调用API接口时,需要使用Token进行鉴权。
本章节指导用户如何通过Postman获取用户Token。更多参数说明请参见获取IAM用户Token。
- Token的有效期
Token的有效期为24小时。建议进行缓存,避免频繁调用。使用Token前请确保Token离过期有足够的时间,防止调用API的过程中Token过期导致调用API失败。
重新获取Token,不影响已有Token有效性。如果在Token有效期内进行如下操作,当前Token将立即失效:
- 删除/停用IAM用户。
- 修改IAM用户密码、访问密钥。
- IAM用户权限发生变化(如账号欠费无法访问云服务、申请公测通过、IAM用户权限被修改等)。
- 非华为云账号获取Token
- 如果您的华为云账号已升级为华为账号,将不支持获取账号Token,建议您为自己创建一个IAM用户,授予该用户必要的权限,获取IAM用户Token。
- 如果您是第三方系统用户,直接使用联邦认证的用户名和密码获取Token,系统会提示密码错误。请先在华为云的登录页面,通过“忘记密码”功能,设置华为云账号密码。
前提条件
已安装并注册Postman。
- 如需安装Postman,建议选择支持Header超过32K的Postman版本,否则可能会报Header溢出错误。
操作步骤
- 编辑获取用户Token接口的Request URL、Header、Body,进行具体的API调用。
- Request URL
- Request Header
key:Content-Type,value:application/json;charset=utf8
- Request Body
修改Request Body样例中参数。
{ "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "domain": { "name": "账号名" }, "name": "IAM用户名", "password": "IAM用户密码" } } }, "scope": { "domain": { "name": "账号名" } } } }
登录获取Token的IAM用户,并获取账号名、IAM用户名,方法请参见:获取账号、IAM用户、项目名称和ID。
- 单击“Send”,发送API请求。
- 在返回的响应头中查看获取的用户Token,用户调用IAM其他API接口时,可以使用该Token进行鉴权。
- 如果返回值为401,表示认证失败,请确认Request Body中请求参数填写正确后重新发送请求。
- 如果返回值为400,表示body体格式错误,请检查body体格式是否满足json语法。详细错误请参考获取token返回值。
- 如果您的调试结果异常,提示“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": {"domain": {"name": "账号名"}}}}' https://iam.ap-southeast-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
- macOS