Как создать заголовок запроса авторизации?

1

Как я могу сгенерировать заголовок запроса авторизации?

Я прочитал о заголовке запроса авторизации, и я сгенерировал его с использованием имени пользователя и пароля в базе 64, но когда я передаю его по заголовку запроса, он не работает ("error": "invalid_client).

Используя Postman, чтобы сделать запрос, все работает:

POST /oauth/token
content-type: application/x-www-form-urlencoded
authorization: Basic M1g4Vlk2QllHOFFJTDA3amt1cWpsUnNKOmhoWkNlSEg0SzFuVVJ2VTZmNUs5MmFiTlNSN3h3ZlBCYVN6OXI1WG1pcDNZOGJCbA==
user-agent: PostmanRuntime/7.1.5
accept: */*
host: 127.0.0.1:5000
accept-encoding: gzip, deflate
content-length: 97

Obs ¹: api использует тип разрешения пароля и возвращает токен-носитель

Obs ²: Когда я base64.b64encode(b'') заголовок запроса авторизации, используя имя пользователя и пароль (base64.b64encode(b'')), длина выходного base64.b64encode(b'') составляет 20 символов

  • 1
    b'Basic ' + base64.b64encode(b'username:pass') ?
  • 0
    Не работает, вот как я сейчас поступаю!
Теги:
flask
header
postman

2 ответа

1
Лучший ответ

В Flask Authlib вы можете определить три типа методов Auth: client_secret_basic, client_secret_post и none, эти типы указывают параметры ведьмы и как вам нужно передавать их в заголовках. Это относится к спецификации RFC6749.

1

Как отправить этот запрос в python?

Почему бы не использовать requests? Вам даже не нужно заботиться об этом:

import requests

requests.post(url, data=data, auth=(username, passwd))
  • 0
    requests.post('http://127.0.0.1:5000/oauth/token', data=payload, header=header).json() , потому что помимо имени пользователя и пароля мне нужно передать client_id, client_secret, scope и grant_type , Да, я попробовал auth но получаю ту же ошибку.
  • 1
    Используйте response.request чтобы увидеть отправленный запрос и сравнить с обработанным в почтальоне. Может быть, вы можете перечислить res.request.header res.request.body или что-то полезное в вашем вопросе, чтобы помочь нам и себе.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню