Мой код такой, и я получаю эту ошибку из заголовка.
Код: Выделить всё
def create_access_token(**data: dict) -> str:
to_encode = data.copy()
expire = datetime.utcnow() + timedelta(minutes=50)
to_encode.update({"exp": expire})
AbstractJWKBase.from_dict(to_encode)
encoded_jwt = jwt.JWT().encode(
AbstractJWKBase, settings.SECRET_KEY, alg=settings.ALGORITHM
)
return encoded_jwt
Код: Выделить всё
@router.post("/login")
async def login_user(response: Response, email: EmailStr, password: str):
user = await authenticate(email=email, password=password)
if not user:
raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED)
access_token = create_access_token({"sub": user.id})
Ошибка: полезная нагрузка должна быть dict в
AbstractJWKBase.from_dict(to_encode)
Я добавил печать в функцию create_access_token, поэтому.
Код: Выделить всё
def create_access_token(data: dict) -> str:
to_encode = data.copy()
print("1", data, type(data))
expire = datetime.utcnow() + timedelta(minutes=50)
to_encode.update({"exp": expire})
print("2",to_encode, type(to_encode))
AbstractJWKBase.from_dict(to_encode)
Код: Выделить всё
1 {'sub': 13}
2 {'sub': {'sub': 13}, 'exp': datetime.datetime(2026, 1, 18, 18, 51, 49, 144881)}
Подробнее здесь: https://stackoverflow.com/questions/798 ... -was-given
Мобильная версия