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

“史上最快” 登入指南:Odoo 系统如何实现企微扫码登录

1041



Odoo 

神州数码云基地

在 Odoo 上的尝试、调研与分享


本期作者

zuokang

一名保持低调,保持进步的

后端开发



我们知道一般登录 Odoo 系统需要先在系统中维护好用户账号,本期就跟大家分享一下另一种快捷的登录方式——通过企业微信扫码登陆到 Odoo 系统。



 #1 实现功能 


1. 企业微信用户一键同步到 Odoo,节省 Odoo 用户的维护成本。


2. 企业微信用户通过扫二维码即可登陆到 Odoo 系统,提升用户使用体验,免去忘记密码的烦恼。




 #2 环境配置 


1. 一台外网能访问的服务器并配置域名,如果想本地调试可使用相关工具进行内网穿透,这样企业微信才能回调到 Odoo,我这里可以推荐钉钉的内网穿透工具 :

https://open.dingtalk.com/document/resourcedownload/http-intranet-penetration


2. Odoo 系统配置文件 odoo.conf 必须指定 db_name 数据库名称


3. 企业微信管理后台。




 #3 实现步骤 


Step 1



获取企业微信连接器源码进行安装。

安装完之后配置连接器参数,如下图所示:



相应参数都可以在企业微信管理后台配置查询找到,下面是参数具体查找路径:



应用名称:自定义名称


企业id:进入企业微信管理后台—>我的企业—>企业信息—>企业ID


通讯录密钥进入企业微信管理后台—>管理工具—>通讯录同步—>企业ID—>Secret 点击查看


应用agentid和应用密钥:进入企业微信管理后台(企业微信 (qq.com))—>应用管理—>应用—>添加自建应用—>创建完成后会显示 AgentId 和密钥 Secret。


应用跳转url:自建应用—>底部设置企业微信授权登录—>Web网页设置回调域(即可外网访问的 Odoo系统的域名)




Step 2


配置完成后点击右侧用户同步按钮,没问题的话会给出提示”用户同步成功“。

随后需要去用户那里看看,确认一下企业微信用户是否全部正常同步过来了。这里用户的同步逻辑是用户若在 Odoo 中存在则更新,不存在则新增。


Step 3


以上步骤都弄完了之后退出登陆,登陆页将会出现企业微信的二维码。


以后用户访问 Odoo 登陆页都将会显示企业微信的二维码,下方依然保留了账号密码的登陆方式,可进行切换。




以上就是企业微信连接器的用法,

下面就跟大家讲一下具体的代码实现原理。


 #4 实现原理 



企业微信api开发资料 



企业微信 api 开发基础知识开发前必读 - 接口文档 - 企业微信开发者中心

https://developer.work.weixin.qq.com/document/path/90664


获取token:获取access_token - 接口文档 - 企业微信开发者中心 

https://developer.work.weixin.qq.com/document/path/91039



获取根据部门获取用户:获取部门成员 - 接口文档 - 企业微信开发者中心 

https://developer.work.weixin.qq.com/document/path/90200


扫码授权登陆:开始开发 - 接口文档 - 企业微信开发者中心 

https://developer.work.weixin.qq.com/document/path/91025




企业微信扫码登录接入流程图 




Step 1


创建微信连接器模块。



Step 2


连接器 model:




access_token: 该字段用于持久化微信给的 access_token,因为微信的接口调用次数是有限制次数的,不宜频繁调用,持久化后便于以后重新获取,另一个作用就是利用这个字段对 token 进行分区,因为每个应用的 token 都是独立的。


redirect_url: 对应 Odoo 系统的访问域名,若有端口把端口也加上。






Step 3

获取企业微信通讯录的 access_token。




Step 4


根据通讯录的 access_token 获取企业微信的用户,这里我们就从根部门递归获取全员的数据,拿到企业微信的用户数据后将 name 和 userId 同步到 res_user 表的 name 和 login 中,框起来的部分是要注意的地方。




Step 5


在企业微信的模块中重写 web_login 相关的接口和页面,关于如何在 Odoo 的登陆页中内嵌登陆二维码可以参考上面的扫码授权登陆。


登陆页初始化的时候需要调接口获取我们自己配置的参数,拿到配置参数后才能根据配置构造我们的二维码。




Step 6


二维码构建完成后用户扫码后企业微信会根据我们配置的 redirect_url 跳转到我们的Odoo系统,即访问我们重写的 web_login 接口并附带上用户的 code 和 appid,在 web_login 接口中对用户的 code 进行消费和用户校验,全部通过后用户将会成功进入 Odoo 系统中。





那么今天的内容就到这里了,

如果你还有什么疑问,或者说有更好的想法,

快来联系我们吧!


扫描下方二维码,

加入群聊,关于Odoo你想了解的全都有!





 #更多精彩内容 




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

评论