Существует клиент REST, который отправляет HTTP-запросы на сервер. REST-клиент отправляет запрос, который содержит заголовок
Authorization=Bearer someValidBase64
Теперь у меня есть серверное приложение в Python 3.8, Flask 1.1.1, PyJWT == 1.7.1.
@app.route(my_rest_end_point)
def get_service_payments():
authorization_header = request.headers.get('Authorization')
# It prints correctly: Bearer someValidBase64
print("Authorization header:\n" + authorization_header)
# Details from that header
user_permissions = jwt.decode(authorization_header)
Сбой с
File "/usr/local/lib/python3.7/site-packages/jwt/api_jws.py", line 188, in _load
raise DecodeError('Invalid header padding')
jwt.exceptions.DecodeError: Invalid header padding
То, что я пробовал
authorization_header = request.headers.get('Authorization')
print("Authorization header:\n" + authorization_header)
cleared_header = authorization_header[7:]
print("cleared_header:\n" + cleared_header)
user_permissions = jwt.decode(cleared_header)
Будет напечатано
Authorization header:
Bearer someValidBase64
cleared_header:
someValidBase64
Сбой снова, потому что сам токен имеет структуру someValidBase64. otherValidPart, так что есть точка .
.