个人成长计划

Ayiya

Casdoor SSO单点登录基础设置

2025-10-15

之前我一直想要让我导航站下载站和博客共用一个用户表,后来大佬们告诉我有种东西叫SSO登陆,类似QQ互联而且1Panel还能一件部署,推荐我用LogTo或Casdoor,最后选了Casdoor因为说是占用内存小😄,下面分享下我使用的实例

部署 Casdoor

推荐使用 Docker 快速部署(适合测试和生产环境):

# 拉取镜像
docker pull casbin/casdoor:latest

# 启动容器(默认使用 SQLite,生产环境建议挂载 MySQL/PostgreSQL 数据卷)
docker run -d -p 8000:8000 --name casdoor casbin/casdoor:latest

访问 http://localhost:8000 看到登录页即部署成功。

上述代码犹豆包AI整理推荐

因为我用的是1Panel么直接在应用商店搜索Casdoor然后点击安装即可,然后一路默认就行😄

2025-10-15-nipkslcl.jpg

安装完成后可通反代来为容器配置域名。1Panle安装的话可以通过「网站」→「创建网站」→「一键部署或反向代理」来配置

2025-10-15-qaqegpiw.jpg

我们首次登录默认的管理员账号:admin,密码:123

登录后建议立即修改密码,可通过右侧进入个人中心然后修改密码,修改后保存退出即可.

2025-10-15-amjeojiv.jpg

2025-10-15-uagctaln.jpg

创建一个新组织

在 Casdoor 中创建新组织是用来区分用户分组和权限隔离的操作,所以还是新建一个组织和默认给到我们的用户组区分开

在用户管理菜单下点击组织然后添加就行

2025-10-15-ilkghdbn.jpg

创建完成后,把下面的内容改成我们自己想要的内容就可以

2025-10-15-cfyentrm.jpg

晚些我们在创建应用后需要给这个新建的组一个默认引用,然后我觉得这个用户组的用户不需要那么多功能按键所以我也给关了,如果不知道这些是做什么的可以通过标题后的问号查看大概用途

2025-10-15-ovijiqjc.jpg

我们调整好后保存关闭即可

新建供应商

Casdoor 中,供应商(Provider)是用于集成第三方服务的,主要是身份验证、消息通知或验证码什么的。

例如,通过配置 QQ互联 作为供应商,我们就可以直接使用 QQ 账号登录 Casdoor,配置 Email 作为邮件供应商,Casdoor 可以发送验证码到我们的邮箱。

目前我只设置了QQ登录,邮箱以及默认的验证码我先简单分享下QQ登录和邮箱,其他的我也不清楚因为没配置过。

配置QQ互联

打开QQ开发者平台,审核通过后,创建网页应用,获取您的客户ID和客户端密钥,怎么配置qq互联可参考这篇文章

https://blog.el9.cn/archives/iSCmFHy1

认证审核 和 应用注册审核都很快的,只要是在工作日內,一般3-5小时左右就会审核

注册应用时,记得填写我们的回调参数URL~不然不给通过

在等审核期间我们可以先简单配置下Casdoor后台的设置,在添加供应商栏目下选择OAuth分类然后选QQ类型

把从qq互联那获取到的APP ID和APP KEY,填写到Casdoor的客户端ID和客户端密钥上就可以了

2025-10-15-ouugtsps.jpg

2025-10-15-kddttucm.jpg

等审核通过后我们就可以通过QQ绑定Casdoor账号了

2025-10-15-ewowucav.jpg

配置发件邮箱

在添加供应商栏目下选择Email分类然后选Defauit类型

Defauit是默认类型的意思不是只能配置飞书,网易,QQ,微软什么的都可以用这个类型

因为我是用的飞书邮箱所以配置如下其他邮箱也是相同的,只要填写对应信息就可以了

2025-10-15-fhzpwlyv.jpg

创建应用

当你的网站(如我的下载站,博客,以及导航站)需要统一身份认证时,只需在 Casdoor 中创建一个对应的 “应用”,配置好认证协议(如 OAuth 2.0、SAML 2.0、JWT 等),就可让用户通过 Casdoor 的账号体系登录该业务系统,无需重复注册或登录。

Casdoor与Halo博客对接

这步也是最麻烦的😂我费了好久才知道怎么弄,这就要感谢ID:兔子养殖户 的群友了

与Halo博客对接需要让Halo博客安装一个插件,目前用的是OAuth2

2025-10-15-kylxcosh.jpg

安装完成插件我们先放一放,先来在Casdoor中创建应用

2025-10-15-runwdnce.jpg

2025-10-15-tgseuzox.jpg

创建应用时 我们先记住客户端ID和客户端密钥,重定向链接按照Halo OAuth2的文档上说是你的域名+/login/oauth2/code/sso

除了这两点需要注意其余的按照你的想法随意配置就行,因为之前在供应商里面设置了QQ互联和邮箱登录么,我在这里加上了,方便我们登录。

设置好上面的信息后,我们回到Halo插件后台配置一下OAuth2的对接信息

2025-10-15-iylttlbe.jpg

这是我们要把在创建应用所记录的客户端ID客户端密钥,填写到Client iDClient Secret 中,然后填写下面三个链接就可以了

Authorization Url :
Casdoor所在域名+ /login/oauth/authorize
Token Url:
Casdoor所在域名+ /api/login/oauth/access_token
UserInfo Url:
Casdoor所在域名+ /api/get-account

然后我们去前台试一试,会发现已经可以登录了,但是说让绑定才行,后来问了一下说是插件的问题只能等他们更新了😂

2025-10-15-gkodanto.jpg

2025-10-15-bmkxphnp.jpg

2025-10-15-yxaqjgtb.jpg

Casdoor与Wprdpress对接

这步也是最麻烦的😂我费了好久才知道怎么弄,这就要感谢水友https://www.akarinliu.com/我是按照他的教程来的

与Wordpress博客对接需要让Wordpress博客安装一个插件,目前用的是 Authorizer

2025-10-15-uaxqzmny.jpg

创建应用时 我们先记住客户端ID和客户端密钥 重定向链接按照的文档上说是 你的域名+ /wp-ogin.php?external=oauth2

然后再 WordPress 后台设置 Authorizer,打开它的管理页面后在 外部服务 Tab 勾选 “启用 OAuth2 服务” 复选框;

按照下图填写,Client ID 和 Client Secret 填写你在 Casdoor 得到的,另外 localhost:8000 和 casdoor:8000 替换成你部署 SSO 服务的域名,http 替换成 https,最后点击保存就行了。

2025-10-15-guptwhtq.png

内容引用

https://donggonghang.comhttps://www.akarinliu.com/archives/7970https://casdoor.org/zh/docs/category/the-basics