Estoy creando un formulario de inicio de sesión básico usando oauth2.0 en FastAPI y MongoDB. Estoy tratando de obtener el correo electrónico y la contraseña de la base de datos, pero sigue mostrando el mismo error "'id': str(user['_id']), TypeError: los índices de cadena deben ser números enteros". No estoy exactamente seguro de lo que estoy haciendo mal.
@authentication.post('/login') async def login(form_email: OAuth2PasswordRequestForm = Depends(), form_password: OAuth2PasswordRequestForm = Depends()): email = users_serializer(user_list.find_one({"email": form_email.username})) password = users_serializer(user_list.find_one({"password": form_password.password})) print(email) print(password) if form_email.username == email: if form_password.password == password: return {"status": "ok", "details": f"Welcome! {form_email.username} "} raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail='Incorrect email or password')Este es el esquema de users_serializer:
def user_serializer(user) -> dict: return { 'id': str(user['_id']), 'name': str(user['name']), 'email': str(user['email']), 'password': str(user['password']), }¿Alguien puede ayudarme a entender qué estoy haciendo mal? ¡Gracias por adelantado!
PD: No tengo mucha experiencia con FastAPI y MongoDB.