Stripe fix and email verification fix

This commit is contained in:
Koncept Kit
2025-12-11 22:18:58 +07:00
parent e875700b8e
commit 7d55d29362
2 changed files with 9 additions and 2 deletions

Binary file not shown.

View File

@@ -455,7 +455,8 @@ async def verify_email(token: str, db: Session = Depends(get_db)):
user.status = UserStatus.pending_approval user.status = UserStatus.pending_approval
user.email_verified = True user.email_verified = True
user.email_verification_token = None # Don't clear token immediately - keeps endpoint idempotent for React StrictMode double-calls
# Token will be cleared on first successful login
db.commit() db.commit()
db.refresh(user) db.refresh(user)
@@ -498,7 +499,12 @@ async def login(request: LoginRequest, db: Session = Depends(get_db)):
) )
access_token = create_access_token(data={"sub": str(user.id)}) access_token = create_access_token(data={"sub": str(user.id)})
# Clear verification token on first successful login after verification
if user.email_verified and user.email_verification_token:
user.email_verification_token = None
db.commit()
return { return {
"access_token": access_token, "access_token": access_token,
"token_type": "bearer", "token_type": "bearer",
@@ -509,6 +515,7 @@ async def login(request: LoginRequest, db: Session = Depends(get_db)):
"last_name": user.last_name, "last_name": user.last_name,
"status": user.status.value, "status": user.status.value,
"role": user.role.value, "role": user.role.value,
"email_verified": user.email_verified,
"force_password_change": user.force_password_change "force_password_change": user.force_password_change
} }
} }