docker版open-webui增加钉钉登录

之前公司使用的chatgpt-web开源项目已经正式宣布停止更新了, 现在准备使用open-webui进行代替...那么就需要进行一下二次开发以便支持钉钉登录

原理很简单, 获取钉钉登录后的用户信息,自动生成一个邮箱账号和密码,邮箱账号我直接使用的md5(钉钉昵称),密码直接使用的open_id+盐,这里只作为一个方法展示,不探讨密码安全性

其实非docker版应该操作方式大差不差
接下来是假设你已经安装并成功运行了open-webui

解决方案

先是对/app/backend/open_webui/routers/auths.py文件的修改,主要修改有两个地方,第一个是修改signup函数让其支持在关闭注册权限的情况下进行自动注册;第二个是增加signin_dingding函数以便支持钉钉自动注册、登录,修改如下:

修改signup函数,中文备注为修改位置,最好手动修改,不要直接覆盖,不保证后续版本的代码和下面一致!

增加signin_dingding函数以便支持钉钉自动创建账号、登录

好了。后端文件的修改就完成了,接下来是前端代码,本着能偷懒就不多干的原则,这里我就没有直接修改ui源码,然后进行编译,我是直接修改的/app/build/index.html文件,直接做了个循环,主打一个能用就行

/app/build/index.html文件底部追加如下内容

显示效果如图所示,最后在钉钉后台设置回调地址为https://xxxx.com/api/v1/auths/signin_dingding, 完成!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

00:00/00:00