@xibolba

Почему при изменении токена декоратору не удается авторизоваться с новым токеном?

При изменении токена получаю 401, при повторном запуске кода, все в порядке, что не так помогите разобраться.
def requires_token(func):
    'Обновление токена'
    @wraps(func)
    def wrapper(self, *args, **kwargs):
        resp = func(self, *args, **kwargs)
        if resp[1] == 401:
            self._token_apikey()
            resp = func(self, *args, **kwargs)
        return resp
    return wrapper

class ShatemPrivate:
    def __init__(self):
        self.token = os.getenv('TOKEN')
        self.session = requests.Session()
        self.session.headers.update({"Authorization": f"Bearer {self.token}"})
 
    def _token_apikey(self):
        login = self.session.post(
            url=ROOT_URL + URL_API_KEY,
            data=API_KEY_LOAD,
        )
        token = login.json()['access_token']
        set_key(
            dotenv_path=ENV_FILE_PATH,
            key_to_set="TOKEN",
            value_to_set=token,
        )

class Shatem(ShatemPrivate):
    @requires_token
    def get_article(self, article: int):
        response = self.session.get(url=ROOT_URL + f'api/v1/articles/{article}')
        return response.text, response.status_code
  • Вопрос задан
  • 102 просмотра
Пригласить эксперта
Ответы на вопрос 1
@maximq
QA Engineer
Потому что, как мне кажется, после изменения токена вы не обновляете self.session, которая задаётся в init
self.session.headers.update({"Authorization": f"Bearer {self.token}"})
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы