

Habilitar CORS en nginx
Debido a que el protocolo HTTP está en desuso y algunas empresas como Google califican negativo las páginas sin HTTPS es deber de los desarrolladores actualizar las aplicaciones con un nivel de seguridad decente o alternativas para conectar aplicaciones que por su naturaleza no cuentan con ese protocolo; aunque muchos comentaran que no es buena práctica en algunos casos es necesario conectarse con aplicaciones que no utilizan dicho protocolo, para ello tenemos CORS.
Esta tecnología nos permite "controlar" los recursos cruzados. En nuestro caso tuvimos la necesidad de interconectar una APP móvil fabricada por nosotros en Ionic 5 y hacerla convivir con un Odoo 14 EE. Con la versión de ambas en producción, es difícil encontrar versiones de librerías (Usamos JSONRPC con Angular 12) que nos eviten tareas maratónicas para hacerlas funcionar 'transparentemente' sin modificar decenas de líneas de código y así evitar 'romper' las aplicaciones, afortunadamente encontramos en la red la solución para hacerlo desde nuestro proxy inverso (NGINX) el bloque de configuración para esto se muestra a continuación:
server {
server_name 127.0.0.1:8069;
location / {
proxy_pass http://127.0.0.1:8069/;
proxy_redirect off;
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'text/plain; charset=utf-8';
add_header 'Content-Length' 0;
return 204;
}
if ($request_method = 'POST') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
}
if ($request_method = 'GET') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
}
}
}
¡Advertencia! Utilice está técnica bajo su responsabilidad, algunos parámetros publicados pueden afectar el nivel de seguridad de sus aplicaciones.
Fuente: Codize
Últimas publicaciones


Novedades Odoo 17

¿Qué nos trae de nuevo Odoo 16?

Nueva cancelación de facturas para México - ¡Ya esta disponible para Odoo Enterprise!

Complemento de carta porte CFDI 2.0 | Autotransporte para México.

Novedades: Odoo 15

Caso de éxito: Instrutek

Localización Mexicana Extendida para Odoo ERP 13.0

App de gastos con OCR Odoo 14
