fix: address final-review hygiene items (pydantic config, cookie alias, argon2 exception scope)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013PphXq1s43DNRj1uWKGXof
This commit is contained in:
@@ -12,7 +12,7 @@ SESSION_COOKIE_NAME = "qm_session"
|
|||||||
|
|
||||||
|
|
||||||
async def get_current_user(
|
async def get_current_user(
|
||||||
qm_session: str | None = Cookie(default=None),
|
qm_session: str | None = Cookie(default=None, alias=SESSION_COOKIE_NAME),
|
||||||
db: AsyncSession = Depends(get_db),
|
db: AsyncSession = Depends(get_db),
|
||||||
) -> User:
|
) -> User:
|
||||||
if qm_session is None:
|
if qm_session is None:
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ async def login(payload: LoginRequest, response: Response, db: AsyncSession = De
|
|||||||
@router.post("/logout", status_code=status.HTTP_204_NO_CONTENT)
|
@router.post("/logout", status_code=status.HTTP_204_NO_CONTENT)
|
||||||
async def logout(
|
async def logout(
|
||||||
response: Response,
|
response: Response,
|
||||||
qm_session: str | None = Cookie(default=None),
|
qm_session: str | None = Cookie(default=None, alias=SESSION_COOKIE_NAME),
|
||||||
db: AsyncSession = Depends(get_db),
|
db: AsyncSession = Depends(get_db),
|
||||||
):
|
):
|
||||||
if qm_session is not None:
|
if qm_session is not None:
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import uuid
|
import uuid
|
||||||
|
|
||||||
from pydantic import BaseModel, Field
|
from pydantic import BaseModel, ConfigDict, Field
|
||||||
|
|
||||||
|
|
||||||
class RegisterRequest(BaseModel):
|
class RegisterRequest(BaseModel):
|
||||||
@@ -13,8 +13,7 @@ class UserOut(BaseModel):
|
|||||||
id: uuid.UUID
|
id: uuid.UUID
|
||||||
username: str
|
username: str
|
||||||
|
|
||||||
class Config:
|
model_config = ConfigDict(from_attributes=True)
|
||||||
from_attributes = True
|
|
||||||
|
|
||||||
|
|
||||||
class LoginRequest(BaseModel):
|
class LoginRequest(BaseModel):
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
from argon2 import PasswordHasher
|
from argon2 import PasswordHasher
|
||||||
from argon2.exceptions import VerifyMismatchError
|
from argon2.exceptions import VerificationError
|
||||||
|
|
||||||
_hasher = PasswordHasher()
|
_hasher = PasswordHasher()
|
||||||
|
|
||||||
@@ -11,5 +11,5 @@ def hash_password(password: str) -> str:
|
|||||||
def verify_password(password: str, password_hash: str) -> bool:
|
def verify_password(password: str, password_hash: str) -> bool:
|
||||||
try:
|
try:
|
||||||
return _hasher.verify(password_hash, password)
|
return _hasher.verify(password_hash, password)
|
||||||
except VerifyMismatchError:
|
except VerificationError:
|
||||||
return False
|
return False
|
||||||
|
|||||||
Reference in New Issue
Block a user