переслать учетные данные другому API-сервису из моего приложения-фляги - PullRequest
0 голосов
/ 23 января 2019

В моем Flask API я вызываю API REST Bitbucket, чтобы получить список всех групп пользователей.Чтобы получить этот список, я должен передать пароль пользователя.Итак, вот мой код:

@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} )

Когда я делаю это в 4-й строке:

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))

Но это не сработало.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...