Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

441
Views
La redirección de FastAPI para la barra inclinada final devuelve un enlace que no es SSL

Nos encontramos con un problema cuando llamamos a un punto final y se produce una redirección debido a que falta una barra diagonal. Como puede ver en la imagen a continuación, cuando se realiza una solicitud a https ://.../notifications, el servidor FastAPI responde con una redirección a http ://...notifications/

Sospecho que es un problema de configuración de la aplicación en lugar de un problema de configuración del servidor. ¿Alguien tiene una idea de cómo resolver este problema?

ejemplo de redirección

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Esto se debe a que su aplicación no confía en los encabezados del proxy inverso que anulan el esquema (el encabezado X-Forwarded-Proto que se pasa cuando maneja una solicitud TLS).

Hay algunas maneras en que podemos arreglar eso:

  • Si está ejecutando la aplicación directamente desde el servidor uvicorn , intente usar el indicador --forwarded-allow-ips '*' .

  • Si está ejecutando gunicorn , también puede establecer la bandera --forwarded-allow-ips="*" .

  • En cualquiera de las aplicaciones, también puede utilizar la variable de entorno FORWARDED_ALLOW_IPS .

Importante: el * debe usarse solo como prueba, ya que hará que su aplicación confíe en los encabezados X-Forwarded-* de cualquier fuente. Le sugiero que lea los documentos de uvicorn y los documentos de gunicorn para obtener un conocimiento más profundo de qué configurar en esta bandera y por qué.

over 4 years ago · Santiago Trujillo Report

0

Experimenté este problema al usar FastAPI con react-admin.

Una solución es cambiar la aplicación FastAPI para que no realice redireccionamientos, sino que trate ambas direcciones URL como puntos finales de API válidos (con y sin barra inclinada).

Puede usar este fragmento escrito por malthunayan para cambiar el comportamiento de APIRouter :

 from typing import Any, Callable from fastapi import APIRouter as FastAPIRouter from fastapi.types import DecoratedCallable class APIRouter(FastAPIRouter): def api_route( self, path: str, *, include_in_schema: bool = True, **kwargs: Any ) -> Callable[[DecoratedCallable], DecoratedCallable]: if path.endswith("/"): path = path[:-1] add_path = super().api_route( path, include_in_schema=include_in_schema, **kwargs ) alternate_path = path + "/" add_alternate_path = super().api_route( alternate_path, include_in_schema=False, **kwargs ) def decorator(func: DecoratedCallable) -> DecoratedCallable: add_alternate_path(func) return add_path(func) return decorator

fuente: https://github.com/tiangolo/fastapi/issues/2060#issuecomment-834868906

(también puede ver otras soluciones similares en este problema de GitHub)


Otra solución es agregar:

 <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">

al archivo index.html en la interfaz. Actualizará todas las solicitudes de http a https (también cuando se ejecute localmente, por lo que puede que no sea la mejor solución)

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!