При вызове функции decode() необходимо передать значение для аргумента "algorithms".
На следующих страницах представлен код проектов:
Если я использую оператор token = jwt.encode(payload,'secret', algorithm='HS256').decode('utf-8')
then
Возникает ошибкау объекта 'str' нет атрибута 'decode'
. Также, когда я удаляю и использую его без .decode('utf-8')
и продолжаю дальнейший код. он работает нормально. Но когда я применяю payload = jwt.decode(token, 'secret', algorithm=['HS256'])
then
При вызове функции decode() требуется передать значение аргумента "алгоритмы""
Возникает вышеупомянутая ошибка. Пожалуйста, помогите мне исправить эту ошибку. Это упомянутая ошибка, говорящая об аргументе алгоритмов при вызове decode() Ошибка должна быть исправлена.
Просмотр страницы:
Вы пропустили 's', параметр называется "алгоритмы" в функции декодирования:
payload = jwt.decode(token, 'secret', algorithms=['HS256'])
и вы также передаете массив возможных значений.
При вызове функции encode параметром является "алгоритм", и он принимает только одно значение.
Причина в том, что во время кодирования вы должны использовать явно один алгоритм, потому что токен может быть подписан только одним алгоритмом. Но во время декодирования/проверки вы указываете функции, какие алгоритмы вы разрешаете.