不使用huaweicloud-sdk包获取IAM的token的方法_python语言实现

举报
小鱼00 发表于 2020/07/03 23:56:48 2020/07/03
【摘要】 遇到在某些场景下只想简单的获取IAM token,然后调用一个API接口。导入huaweicloud-sdk-python包非常的重,写代码多,不想用这种方式。通过python自带的urllibe2或第三方包requests可以用几行代码获取IAM token。

    遇到在某些场景下只想简单的获取华为云IAM token,然后调用一个API接口。导入huaweicloud-sdk-python包非常的重,写代码多。如果不想导入过多的包。可以通过python自带的urllibe2包或第三方包requests包,用几行代码就能获取IAM token。  

    如果要写一个应用需要调用多个华为云服务的API,建议导入huaweicloud-sdk-python包,参考SDK文档编写。Python SDK入门


# _*_coding: utf-8_*_

import json
import requests
import urllib2


#1 Get keystone version by urllib2(GET)
version_url = "https://iam.myhuaweicloud.com/v3"
req = urllib2.Request(version_url)
response = urllib2.urlopen(req)
print("Get keystone version info:", response.read())


# IAM body
data={
    "auth": {
        "identity": {
            "methods": [
                "password"
            ],
            "password": {
                "user": {
                    "domain": {
                        "name": "***"
                    },
                    "name": "***",
                    "password": "###"
                }
            }
        },
        "scope": {
            "domain": {
                "name": "***"
            }
        }
    }
}

auth_url = "https://iam.myhuaweicloud.com/v3/auth/tokens?nocatalog=true"
headers = """ "Content-Type": "application/json" """
json_data = json.dumps(data)

#2 Get token by urllib2.Request(POST)  (pyhthon native)
auth_req = urllib2.Request(auth_url, json_data)
auth_req.add_header('Content-Type', 'application/json')
auth_resp = urllib2.urlopen(auth_req)
if 'x-subject-token' in auth_resp.headers:
    print("Get token by urllib2.Request:", auth_resp.headers['x-subject-token'])

#3 Get token by requests.post(POST)   (pip install requests)
auth_resp = requests.post(auth_url, json_data, headers, verify=False)
if 'x-subject-token' in auth_resp.headers:
    print("Get token by requests.post:", auth_resp.headers['x-subject-token'])


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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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