从我的flask应用程序将凭据转发到另一个API服务

时间:2019-01-23 14:21:33

标签: python api authentication flask

在我的Flask API中,我调用Bitbucket的API REST以获取所有用户组的列表。 要获得此列表,我必须传递用户名密码。 所以这是我的代码:

@app.route('/v1/api/bitbucket/groups')
def get_groups():
    list_groups = []
    groups = requests.get("https://api.bitbucket.org/1.0/groups/myaccount/")
    resp = groups.json()
    for item in resp:
        list_groups.append({'name': item['name']})
    return jsonify( {'results': list_groups} )

当我在第四行中这样做时:

groups = requests.get("https://api.bitbucket.org/1.0/groups/myaccount/", auth=HTTPBasicAuth('username', 'pass'))

卷曲端点时会得到以下结果:

    {
      "results": [
        {
          "name": "group_tools_dev"
        },
        {
          "name": "group_dev"
        },
        {
          "name": "group_333222"
        },
        {
          "name": "group_333"
        }
    ]
}

因此,我想在调用curl时进行身份验证,而不处理Flask身份验证库,因为在这里,我是对bitbucket进行身份验证,而不是对应用程序本身进行身份验证,因此我希望它在工作时能够正常工作要求:

 curl -u username:password http://localhost:5000/v1/api/bitbucket/groups

这可能吗?

也许我们可以使用OAuth密钥秘密对?

我尝试过:

username = request.args.get('secret')
password = request.args.get('key')
groups = requests.get("https://api.bitbucket.org/1.0/groups/myaccount/", auth=HTTPBasicAuth(username, password))

但这没用。

0 个答案:

没有答案