You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Odoo商城如何通过POST URL实现自动登录并跳转至用户购物车

Odoo跨站自动登录跳转购物车解决方案

你之前使用GET参数传递登录凭证的方案无法生效,Odoo/web/login路由仅接受POST请求提交登录信息,GET请求携带的账号密码不会被登录逻辑识别,同时Odoo默认开启CSRF防护,请求必须携带合法令牌才能完成校验。

实现步骤

1. 构造自动提交的POST表单

在外部跳转源页面插入如下代码,用户访问该页面时会自动向Odoo提交登录请求,登录完成后直接跳转至购物车页:

<!-- 替换为你的Odoo实际访问地址 -->
<form id="odoo_auto_login_form" action="https://你的Odoo域名/web/login" method="POST">
  <input type="hidden" name="db" value="pos-s99-01">
  <input type="hidden" name="login" value="mail@gmail.com">
  <input type="hidden" name="password" value="blabla">
  <!-- 直接跳转购物车填写/shop/cart,跳转商品列表填写/shop -->
  <input type="hidden" name="redirect" value="/shop/cart">
  <!-- Odoo 13及以上版本需要补充csrf_token字段,低于13版本可删除该行 -->
  <input type="hidden" name="csrf_token" value="提前获取的对应会话CSRF令牌">
</form>
<script>
window.addEventListener('load', () => {
  document.getElementById('odoo_auto_login_form').submit();
})
</script>

2. CSRF令牌获取

Odoo 13及以上版本要求所有POST请求必须携带CSRF令牌,获取方式如下:

  • 先向Odoo的/web路径发送一次无登录态的GET请求,从返回的响应Cookie中提取csrf_token字段值,填入表单对应位置即可
  • 内部可信场景下,也可以通过Odoo二次开发自定义免CSRF校验的专属登录接口,跳过令牌校验步骤,该方案存在安全风险,不推荐公网环境使用

购物车内容保留说明

Odoo默认会将未登录状态下存储在用户本地Cookie中的购物车内容,在登录完成后自动合并到对应用户的账户下,不需要额外做适配处理。

安全注意事项

  • 必须为Odoo配置HTTPS证书,禁止明文传输账号密码,避免凭证泄露
  • 该方案仅适用于完全可控的内部业务场景,公开场景使用会导致用户账号密码泄露,存在极高安全风险

内容的提问来源于stack exchange,提问作者Marie B.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 06:36:04