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? Я новичок в программировании, я упускаю что-то очень важное?

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

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

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

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

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

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