Это способ смены пароля в моем приложении:
@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
FastAPI не допускает двойные кавычки в качестве специального символа в пароле. ⇐ Python
Программы на Python
1737450549
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"
}
}
]
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79373372/fastapi-does-not-allow-double-quotation-as-a-special-character-in-password[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия