/ / Django REST Framework los enlaces de paginación no usan HTTPS - django, django-rest-framework

Los enlaces de paginación de Django REST Framework no usan HTTPS - django, django-rest-framework

Estoy configurando la paginación para un determinado punto final DRF que funciona bien; sin embargo, cuando se implementa en mi servidor, que usa HTTPS, los enlaces a las páginas siguiente y anterior se forman con http:// en lugar de https://. Esto hace que el navegador bloquee las solicitudes de páginas siguientes / anteriores.

He verificado dos veces que se emitió la solicitud inicial, con HTTPS, y la segunda respuesta a esta pregunta establece que debería estar usando HTTPS en las URL formadas ya que la solicitud llegó a través de HTTPS.

La primera respuesta a esa misma pregunta tampoco ayudó: agregué el X-Forwarded-Proto línea a mi configuración nginx y recargada, sin resultado.

Los documentos DRF mencione que reverse () debería comportarse como la base Django reverse, sin embargo, parece bastante claro que la solicitud inicial es HTTPS mientras que la URL devuelta es HTTP.

Aquí hay un par de capturas de pantalla que muestran la solicitud inicial (https://<domain>.com/api/leaderboard/)

enter image description here

Con la respuesta que contiene next: http://<domain>.com/api/leaderboard/?page=2)

enter image description here

Pensé que esto sería una configuración simple, pero no he podido encontrar nada después de buscar tanto en este sitio como en el sitio DRF.

Esta es mi configuración nginx:

 location / {
# proxy_pass http://127.0.0.1:9900;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
add_header P3P "CP="ALL DSP COR PSAa PSDa OUR NOR ONL UNI COM NAV"";

root /opt/app/client/dist;
index index.html index.htm;

}

Esta pregunta contiene una respuesta bastante detallada, pero finalmentedice que las URL se forman con el mismo protocolo que la solicitud, lo cual no parece ser el caso aquí. ¿Necesito configurar ese Django SECURE_PROXY_SSL_HEADER? No estaba seguro, dada la advertencia de que es potencialmente inseguro.

Respuestas

4 para la respuesta № 1

¿Necesito configurar ese Django SECURE_PROXY_SSL_HEADER? No estaba seguro, dada la advertencia de que es potencialmente inseguro.

Si tu puedes. Sin embargo, debe tener cuidado con lo que está haciendo. En particular, asegúrese de que suelte el X-Forward-Proto desde afuera.