FastAPI не допускает двойные кавычки в качестве специального символа в пароле.Python

Программы на Python
Ответить
Anonymous
 FastAPI не допускает двойные кавычки в качестве специального символа в пароле.

Сообщение Anonymous »

Это способ смены пароля в моем приложении:
@auth_router.patch('/change-password', response_model=UserSchema)
async def change_password(change_password_schema: ChangePasswordSchema, db: Annotated[AsyncSession, Depends(get_db)],
user: Annotated[User, Depends(current_user)]):
return await auth.change_password(change_password_schema=change_password_schema, db=db, user=user)

А это метод с логикой смены пароля:
async def change_password(change_password_schema: ChangePasswordSchema,
db: Annotated[AsyncSession, Depends(get_db)],
user: User):
password_match = verify_password(change_password_schema.current_password, user.password)
if not password_match:
raise HTTPException(status_code=status.HTTP_400_BAD_REQUEST,
detail="Current password doesn't match.")

user.password = get_password_hash(change_password_schema.new_password)
if user.first_login:
user.first_login = False
db.add(user)
await db.commit()
await db.refresh(user)
return user

Это ChangePassworSchema:
class ChangePasswordSchema(BaseModel):
current_password: str
new_password: str

@model_validator(mode='after')
def validate_password(self):
if self.new_password == self.current_password:
raise HTTPException(status_code=status.HTTP_422_UNPROCESSABLE_ENTITY,
detail="New password can't be same as old password")
try:
validate_password(self.new_password)
except ValueError as e:
raise HTTPException(
status_code=status.HTTP_422_UNPROCESSABLE_ENTITY, detail=str(e))
return self

Здесь проблема в том, что когда человек использует пароль со знаком двойной кавычки ("") в новом пароле, программа выходит из строя. Я хочу, чтобы пользователи использовали двойные кавычки в качестве специального символ в пароле. Как я могу сделать это в FastAPI? Я новичок в программировании, я упускаю что-то очень важное?
Когда я запрашиваю конечную точку со следующим значением:
{
"current_password": "Na$6Ae.5",
"new_password": "Ml39|0"UHa.K"
}

показывает такую ​​ошибку:
{
"detail": [
{
"type": "json_invalid",
"loc": [
"body",
62
],
"msg": "JSON decode error",
"input": {},
"ctx": {
"error": "Expecting ',' delimiter"
}
}
]
}


Подробнее здесь: https://stackoverflow.com/questions/793 ... n-password
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»