Diferencia entre revisiones de «Web Controller en Odoo»

De Jose Castillo Aliaga
Ir a la navegación Ir a la búsqueda
Línea 23: Línea 23:


[[Archivo:Postmanauthenticationodoo.gif]]
[[Archivo:Postmanauthenticationodoo.gif]]
Podem copiar aquest codi per autenticar-nos en la ruta que necessitem. Cal importar:
<syntaxhighlight lang="python" style="font-family:monospace">
from odoo.http import request
</syntaxhighlight>
Observem que en la resposta va una Cookie que és la sessió. Si en el postman o en en navegador l'esborrem es perd la sessió.

Revisión del 17:44 26 oct 2020

CORS en Odoo

Odoo no permet peticions Ajax que no vinguen del mateix origen que ell. Això ho podem canviar en cada route amb cors='*'

Si volem permetre CORS en tot odoo, el millor és instal·lar Ngingx, configurar-lo per a permetre CORS i fer que actue com a proxy d'Odoo.

Autenticació

En el directori d'addons d'Odoo, en el mòdul web/controller, trobem aquest codi:

    @http.route('/web/session/authenticate', type='json', auth="none")
    def authenticate(self, db, login, password, base_location=None):
        request.session.authenticate(db, login, password)
        return request.env['ir.http'].session_info()

Eixa és la ruta d'autentificació. Com es veu, accepta un json amb la base de dades, login, password...

Si vulguem fer una aplicació que connecte amb Odoo via web, deguem autenticar-nos. Anem a analitzar el que demana. Per a fer-ho utilitzarem el programa Postman

En aquest gif es veu el que hem de ficar en el Postman per a veure si funciona el API:

Postmanauthenticationodoo.gif

Podem copiar aquest codi per autenticar-nos en la ruta que necessitem. Cal importar:

from odoo.http import request

Observem que en la resposta va una Cookie que és la sessió. Si en el postman o en en navegador l'esborrem es perd la sessió.