首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Odoo 8控制器认证跨站点

Odoo 8控制器认证跨站点
EN

Stack Overflow用户
提问于 2016-10-09 19:14:16
回答 1查看 1.1K关注 0票数 0

我有odoo 8控制器,它返回某些只有日志用户才能访问的数据。网站位于不同的服务器上,然后是odoo本身。如何从我的页面请求身份验证(正如在不同服务器上提到的那样)?

附注:在我的开发环境中,这一切都是因为im从localhost/index.html调用到localhost/getData (通过对localhost的反向代理:8069/getData用于cors)。但是当我把它放到真正的服务器上时,它会以缺少的会话错误进行响应。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-10 03:52:09

您需要从远程服务器进行身份验证并获得一个session_id。一旦您有了它,就把它作为cookie传递给后续的请求。

代码语言:javascript
运行
复制
import requests
from requests import Request,Session
import json

b_url = "http://yourodooserver.com"
# or "http://201.100.100.12:8069" (or whatever the ip is)
url = "{}/web/session/authenticate".format(b_url)

db = "<YOURDBNAME>"
user = "<YOURUSERNAME>"
passwd = "<YOURPASSWORD>"

s = Session()

data = {
    'jsonrpc':'2.0',
    'params': {
        'context': {},
        'db': db,
        'login': user,
        'password': passwd,
    },
}

headers = {
    'Content-type': 'application/json'
}

req = Request('POST',url,data=json.dumps(data),headers=headers)

prepped = req.prepare()

resp = s.send(prepped)

session_id = json.loads(resp.text)['result']['session_id']

# NOW MAKE REQUESTS AND PASS YOUR SESSION ID

res = requests.get(b_url + "/your/controller/path",cookies={'session_id':str(session_id)})

print(res.text)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39947501

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档