odoo16-API(Controller)带有验证访问的接口

odoo16-API(Controller)带有验证访问的接口

目前我使用odoo原生的登录token来验证登陆的有效性

废话不多说直接上代码

# 测试获取session_id
import requests
class GetOdooData(http.Controller):
    def getOdooToken(self):
        # http://localhost:8123访问odoo的路径,后面的web/session/authenticate固定写法请不要动!!!
        url = "http://localhost:8069/web/session/authenticate"
        # 传入需要访问的数据库名称,登录账号与密码
        data = {
            "params": {
                "db": "devodoo16.0",
                "login": "odoo",
                "password": "odoo",
            }
        }
        headers = {'Content-type': 'application/json'}
        response = requests.post(url, headers=headers, json=data)
        # 从服务器返回的响应信息中获取名为"session_id"的cookie的值,并将其返回。
        return response.cookies["session_id"]

    @http.route('/test', type='json', auth="none", cors="*", csrf=False)
    def test(self, **kw):
        odootoken = self.getOdooToken()
        return odootoken
        # 用此代码进行接口测试,查看前端是否拿到了session_id

我这是把数据库+用户+密码直接写死用来测试的,你也可以把用户+密码改为前端传参数形式这里就不阐述了···想要的话私信发你

修改接口验证auth=user 的

代码如下

    @http.route('/getdata', type='json', auth="user", cors="*", csrf=False)
    def getdata(self, **kw):
        # dingdan_h = 4900145711
        dingdan_h = kw.get('dingdan_h')
        print("dingdan_h==",dingdan_h)
        dingdan = request.env['dc.kaishik.dd'].sudo().search([('dingdan_h', '=', dingdan_h)])#随便找个模型查询一条数据

        if not dingdan:
            back_data = {'code': 300, 'msg': '订单不存在'}
            return (back_data)
        data = {
            "dingdan_h": dingdan.dingdan_h,
            "dingdan_lx": dingdan.dingdan_lx,
            "jiaohuo_date": dingdan.jiaohuo_date,
        }
        back_data = {'code': 100, 'msg': '查询订单成功', 'data': data}
        print("back_data==",back_data)
        return (back_data)

重启刷新,访问getdata接口,并且在前端的(Headers)头部写入key:X-Openerp-Session-Id;value填入刚刚拿到的cookie

就可以拿到数据

如果在前端的(Headers)头部 不填写 key:X-Openerp-Session-Id 那么返回就为如下

以上   溜了  ~~~   Bye ~ 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/405137.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

要赢,且不止一次,2024创维汽车势不可挡!

随着除夕钟声的敲响,创维汽车迎来了全新的一年。过往取得的成绩已成为了历史,全新的未来还有待奋斗者们去开创。为辞旧迎新,创维汽车于2月22日及2月23日召开了“新春启航,共谋发展”营销会议,为2024做下全新布局。 创维…

【xss跨站漏洞】xss漏洞利用工具beef的安装

安装环境 阿里云服务器,centos8.2系统,docker docker安装 前提用root用户 安装docker yum install docker 重启docker systemctl restart docker beef安装 安装beef docker pull janes/beef 绑定到3000端口 docker run --rm -p 3000:3000 janes/beef …

【若依(ruoyi)】Java---如何在Apifox上传params参数--延伸--如何在Apifox上传Map类型参数

在使用若依开发过程中写接口的时候想在params中添加参数,但是使用params.key这种形式在后端是接收不到传过来的参数的,于是百般调研(百度),终于找到一个解决办法,就是在参数前后加上%5B和%5D,这两个参数会被编译为"["和"]",于是就对得上了,后端成功接受到参…

基于Java在线宠物店商城系统设计与实现(源码+部署文档)

博主介绍: ✌至今服务客户已经1000、专注于Java技术领域、项目定制、技术答疑、开发工具、毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精彩专栏 推荐订阅 👇🏻 不然下次找不到 Java项目精品实…

【工具】阿莫智能设备之脱机烧录器K202C-1

注意,本文档仅仅是介绍烧录器的资料构成,并非烧录器的说明书,详细请看各对说明书及视频。 1. 资料图解 首先需要下载资料,通常稳定发布版本可以从 www.amomcu.cn 下载, 也可以向我们客服获取最新版本, 获…

学习负载均衡的算法

什么负载均衡 负载均衡是一种计算机技术,用于在多个系统、网络链接、硬盘驱动器、CPU等之间分配工作负载,以优化资源使用、最大化吞吐量、最小化响应时间、并避免任何单一资源的过载。在网络负载均衡的情况下,它可以帮助将网络流量有效地分配…

WebAPI [Swagger] 发布ISS不能生成xml文件问题记录

因为Swagger文件的注释是读取项目xml的。 除了Debug要输出xml,正式发布release时也要输出xml

Camtasia2024试用版最新核心功能介绍

Camtasia的试用版通常提供与正式版本相同的核心功能,但可能会有一些限制或水印。以下是试用版中可能包含的一些功能: 屏幕录制:试用版允许用户录制电脑屏幕上的活动,无论是全屏、特定区域还是特定窗口。用户可以选择录制光标、添加…

LeetCode LCR 055.二叉搜索树迭代器

实现一个二叉搜索树迭代器类BSTIterator ,表示一个按中序遍历二叉搜索树(BST)的迭代器: BSTIterator(TreeNode root) 初始化 BSTIterator 类的一个对象。BST 的根节点 root 会作为构造函数的一部分给出。指针应初始化为一个不存在…

基于PID-bang-bang控制算法的卫星姿态控制matlab仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 基于PID-bang-bang控制算法的卫星姿态控制。仿真输出控制器的控制收敛曲线,卫星姿态调整过程的动画。 2.系统仿真结果 3.核心程序与模型 版本:MATLAB…

c语言经典测试题3

1.题1 int a 248, b 4; int const *c 21; const int *d &a; int *const e &b; int const * const f &a; 请问下列表达式哪些会被编译器禁止? A: *c 32; B: *d 43 C: e&a D: f0x321f 我们来分析一下:const用来修饰变量是想其…

Kotlin filterIsInstance filterNotNull forEach

Kotlin filterIsInstance filterNotNull forEach fun main(args: Array<String>) {val i1 MyItem(1, 1)val i2: MyItem? nullval i3: Int 3val i4 "4"val i5 nullval i6 MyItem(6, 6)val list mutableListOf<Any?>(i1, i2, i3, i4, i5, i6)lis…

百度地图海量点方案趟坑记录(百度地图GL版 + MapVGL + vue3 + ts)

核心需求描述 不同层级有不同的海量图标展示底层海量图标需要展示文字拖动、放大缩小都需要重新请求数据并展示固定地图中心点&#xff08;拖动、放大缩小&#xff0c;中心点始终在地图中心&#xff09; 示例图片&#xff1a;&#xff08;某些图片涉及公司数据&#xff0c;就未…

靡语IT:Vue精讲(一)

Vue简介 发端于2013年的个人项目&#xff0c;已然成为全世界三大前端框架之一&#xff0c;在中国大陆更是前端首选。 它的设计思想、编码技巧也被众多的框架借鉴、模仿。 纪略 2013年&#xff0c;在Google工作的尤雨溪&#xff0c;受到Angular的启发&#xff0c;从中提取自…

unity学习(30)——跳转到角色选择界面(跳转新场景)

1.在scene文件夹中&#xff08;[siːn]&#xff09;&#xff0c;右键->create->scene&#xff0c;名字叫SelectMenu&#xff08;选择角色场景&#xff09;。 2.把新建场景拖拽到hierarchy[ˈhaɪərɑːki]中。 3.此时才能在file->build setting中Add open scene&…

图解李白的“朋友圈”

《长安三万里》作为2023年票房第一的国漫电影&#xff0c;以安史之乱为背景&#xff0c;从诗人高适的视角铺设了一幅绚丽的历史长卷&#xff0c;细细讲述“诗仙”李白跌宕起伏的一生&#xff0c;以及大唐盛世一路荣耀幻灭的唏嘘。同时&#xff0c;在这部动画电影中出现了多位大…

【了解机器学习的定义与发展历程】

曾梦想执剑走天涯&#xff0c;我是程序猿【AK】 目录 简述概要知识图谱 简述概要 了解机器学习的定义与发展历程 知识图谱 机器学习&#xff08;Machine Learning&#xff0c;ML&#xff09;是一门跨学科的学科&#xff0c;它使用计算机模拟或实现人类学习行为&#xff0c;通…

HTML5新婚、年会、各种聚会的现场抽奖活动(附源码)

文章目录 1.抽奖平台设计来源1.1 主界面效果1.2 抽奖效果1.3 中奖效果 2.效果和源码配置2.1 动态效果2.2 人员信息配置2.3 奖品信息配置2.4 抽奖音效配置2.5 源代码 源码下载 作者&#xff1a;xcLeigh 文章地址&#xff1a;https://blog.csdn.net/weixin_43151418/article/deta…

UnityWebGL 设置全屏

这是Unity导出Web默认打开的页面尺寸 修改后效果 修改 index.html 文件 1.div元素的id属性值为"unity-container"&#xff0c;宽度和高度都设置为100%&#xff0c;意味着该div元素将占据整个父容器的空间。canvas元素的id属性值为"unity-canvas"&#xff…

liunx docker 安装 nginx:stable-alpine 后报500错误

参考:docker使用nginx部署网站报500错误_docker nginx 500-CSDN博客 重启容器后访问,正常
最新文章