暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Odoo|你还在担心session过期吗?

592

Odoo中session过期问题的处理

Odoo作为全球第一的开源ERP平台,已经被越来越多的企业应用到数字转型实践中。大家在使用Odoo的时候应该常常会遇到session过期的问题提示,遇到这种情况该怎么操作呢?

 

今天就跟大家一起分享一下我的处理过程。


 左康 

后端开发工程师

自我介绍我想想~



01

问题发现与分析


一、问题场景复现


1.账号登陆odoo系统。

 

2.浏览器重新访问http://localhost:8069/web/login,进入到登陆页 (就国内系统的使用习惯而言,用户之前已经登陆了,再次登陆的话应该是直接跳进系统的,但是odoo依然需要重新输入账号密码)


3.用同一账号再次登陆odoo系统,等待片刻即会出现session过期的提示。



二、问题定位


odoo session是默认保存在本地的。


找到本地保存session的文件,会发现每次登陆后都生成了新的session,这样就会导致原先第一次登陆浏览器的session跟第二次登陆的session匹配不上。


匹配不上时odoo就会又生成一个新的空值的session文件,这就导致了session的过期问题。



02

解决方案


一、定位源码



setup_session就是生成session的,但是这块的源码不是问题的关键,我们可以跟踪explicit_session这个参数,由此发现问题的原因。



从这段代码中我们可以看到


odoo会将原先的session删除然后生成新的session,这里就是重复登陆session会过期的关键所在。


同时我们可以看到这个逻辑是通过rotate字段来控制的,我们将rotate字段设置为False,就可以实现session的更新,而不是删除再生成新的了。


二、修改字段



 我们将http.py 中的rotate字段都重新设置成False



最后我们在这里登陆的地方加个session的判断,当用户二次登陆的时候就可以直接进入系统了。


以上,session过期问题就完美解决啦!



Hello~
这里是神州数码云基地
编程大法,技术前沿,尽在其中
Odoo、数据库、云原生、DevOps
超多原创技术干货持续输出ing~

想要第一时间获取
超硬技术干货
快快点击关注+设为星标


拜托拜托啦

这对“我们”都很重要哦~


- END -




往期精选




Odoo丨Odoo框架源码研读三:异常处理与定制化开发




Odoo丨Odoo框架源码研读二:ORM框架与日志




Odoo丨Odoo框架源码研读一:前后端交互



了解云基地,就现在!

文章转载自神州数码云基地,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论