OAuth 2 Authlib. Как получить доступ к ресурсу?
Я настроил этот пример сервера OAuth2. Имеет авторизацию и один ресурс (/api/me
). Я делаю клиентское приложение также на Python. Я понял, как получить токен. Но когда я пытаюсь получить доступ /api/me
Я получаю ответ {"message":"401 Unauthorized: None"}
, Я могу сказать, что я поставил свой токен в URL в качестве параметра, а также я поместил его в FORM. Это положить его под access_token
ключ. Что я делаю неправильно? Очевидно, это должно работать как-то?
Вот мой код клиентского приложения:
def token_get():
token = None
print("========================================")
print("Sending POST request to get token")
# FORM data
payload = {
"client_id":"ySFTzBKLo0XTaK2tQL9ls4Fc",
"client_secret":"vq8vMZplY4J00FrxKx4ynV2mhmL2zzjMzP1U2bXZPhQRcmJl",
"grant_type":"password",
"scope":"profile",
"username":"ignas",
"password":"valid"
}
auth=(
"ySFTzBKLo0XTaK2tQL9ls4Fc",
"vq8vMZplY4J00FrxKx4ynV2mhmL2zzjMzP1U2bXZPhQRcmJl"
)
r = requests.post(_url(f"/oauth/token"), data=payload, auth=auth)
print(f"RESPONSE {r.status_code}")
print(f"r.url={r.url}")
print(f"r.text={r.text}")
if r.status_code == 200:
json = r.json()
print(f"JSON=\"{json}\"")
token = json["access_token"]
print(f"TOKEN=\"{token}\"")
print("========================================")
return token
def api_me_get(token):
print("========================================")
print("Sending GET request to get protected data of me")
# FORM data
payload = {
"access_token":f"{token}"
}
print(f"PAYLOAD=\"{payload}\"")
r = requests.get(_url(f"/api/me"), data=payload, params=payload)
print(f"RESPONSE {r.status_code}")
print(f"r.url={r.url}")
print(f"r.text={r.text}")
if r.status_code == 200:
json = r.json()
print(f"JSON=\"{json}\"")
print("========================================")
def test_token():
token = token_get()
api_me_get(token)
def main():
test_token()
main()