news 2026/8/23 14:32:10

Casdoor API 实战教程:5 步完成第一次接口调用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Casdoor API 实战教程:5 步完成第一次接口调用

Casdoor API 实战教程:5 步完成第一次接口调用

【免费下载链接】casdoorAn open-source Agent-first Identity and Access Management (IAM) /LLM MCP & agent gateway and auth server with web UI supporting OpenClaw, MCP, OAuth, OIDC, SAML, CAS, LDAP, SCIM, WebAuthn, TOTP, MFA, Face ID, Google Workspace, Azure AD项目地址: https://gitcode.com/gh_mirrors/ca/casdoor

Casdoor 是一个开源的身份认证与访问管理(IAM)平台,支持 OAuth、OIDC、SAML、LDAP、WebAuthn 等协议,还能给 AI 智能体和 MCP 工具当认证网关。这篇文章围绕 Casdoor API 调用展开:先花 5 步拿到第一个访问令牌,再弄懂响应格式和参数约定,最后把登录、用户、权限三类接口用到真实业务里。

🚀 拿到第一个访问令牌:5 步

  1. 启动服务。默认端口是 8000,管理页面地址 http://localhost:8000,默认账号 admin,默认密码 123。
  2. 打开测试页。浏览器访问 http://localhost:8000/swagger,这是内置的接口调试页面,所有接口分组列出,可以直接在页面上填参数试调。
  3. 发起登录请求。找到 POST /api/login,四个关键入参:application(应用名,如 built-in-app)、username、password、organization(组织名,如 built-in)。
  4. 确认响应。看到"status":"ok",且data里有 accessToken 和 refreshToken,说明登录成功。
  5. 发起第一次调用。复制 accessToken,在请求头带上Authorization: Bearer <你的令牌>,请求GET /api/get-users?owner=built-in。看到用户列表 JSON,第一次 Casdoor API 调用就完成了。

不想翻页的话,一条命令也能发出去:

curl -X POST http://localhost:8000/api/login \ -d 'application=built-in-app&username=admin&password=123&organization=built-in&type=login'

🔍 先看到什么,再明白为什么

跑几个接口后你会注意到:不管成功失败,返回体长得都一样。

  • statusokerror,判断成败看它,别只盯 HTTP 状态码;
  • msg:错误时的一句话说明,排查问题基本靠读它;
  • data:真正要的数据,列表接口里是数组,单条接口里是对象。

以 GET /api/get-users 为例,传上组织名 owner,拿到该组织下的用户列表,但邮箱、手机号这类敏感字段默认被遮掩。这是设计使然——防止普通令牌把整库隐私数据拉走。

为什么请求头必须带令牌

令牌是登录时签发的"通行证"。管理接口的处理顺序是:先验通行证,再执行操作,所以不带或过期都会被打回。常见放法有两种:请求头Authorization: Bearer <令牌>,或查询参数access_token。响应里的expireIn字段告诉你通行证还剩多少秒有效,过期后重新登录,或用 /api/login/oauth/refresh_token 换新令牌。

为什么几乎每个接口都要 owner 参数

Casdoor 按"多租户"方式存数据,owner 就是租户,也就是组织名。用户的完整身份是 owner/name,比如 built-in/admin。查询、新增、修改接口都要靠 owner 定位数据属于哪个组织。实战里最常见的"用户不存在"报错,多数是 owner 填错了。

参数和路由的完整约定,可以对照 routers/router.go 里的注册清单,或翻 controllers/ 下的具体实现。

把接口用到三个真实场景

下面的三个场景,覆盖了绝大多数 Casdoor API 调用的需求。

登录对接。自己不做登录页,把用户重定向到 Casdoor 的登录界面,登录完成后它会带着令牌跳回你的应用;后端拿这个令牌调 /api/userinfo 验证用户身份即可。关键参数:application(用哪个应用的身份页)、owner(组织)。

同步用户列表。定时调 GET /api/get-users 拉取用户进自己的系统。支持分页参数 pageSize 和 p,也支持按 field、value 过滤,不必每次全量拉取。

操作前权限校验。重要操作前调 POST /api/enforce,请求体是一个数组,比如["alice","article1","read"],意思是"用户 alice 对 article1 有没有 read 权限",返回直接给 true 或 false。

踩坑与速查

下表覆盖了 Casdoor API 调用中最容易撞上的四类错误:

现象可能原因处理办法
status: error,提示 Unauthorized没带令牌或已过期重新登录换新令牌;确认请求头写法是Bearer <令牌>
查不到用户owner 是组织名,误填成了应用名核对 owner 与账号所属组织是否一致
add-user 返回失败必填字段缺失请求体必须包含 owner、name、password
get-users 里邮箱手机号是遮掩值默认脱敏用管理员令牌,或走更新类接口拿完整数据

最常用的五个接口,先记这几行就够用了:

接口方法作用
/api/loginPOST登录,换取 accessToken 和 refreshToken
/api/get-usersGET查用户列表,传 owner 指定组织
/api/add-userPOST新建用户,请求体含 owner/name/password
/api/enforcePOST单次权限判定,请求体为字符串数组
/api/healthGET健康检查,方便运维监控探活

按到这里,你已经能完成登录、取令牌、查用户、判权限这一套基础 Casdoor API 调用。下一步可以深入 OAuth 的 /api/login/oauth/access_token 标准令牌流程,或看 object/ 里的权限模型,把 Casbin 细粒度授权接到你的系统里。

【免费下载链接】casdoorAn open-source Agent-first Identity and Access Management (IAM) /LLM MCP & agent gateway and auth server with web UI supporting OpenClaw, MCP, OAuth, OIDC, SAML, CAS, LDAP, SCIM, WebAuthn, TOTP, MFA, Face ID, Google Workspace, Azure AD项目地址: https://gitcode.com/gh_mirrors/ca/casdoor

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/23 14:28:46

5 分钟生成整套 OpenCore EFI:OpCore Simplify 黑苹果自动构建工具

5 分钟生成整套 OpenCore EFI&#xff1a;OpCore Simplify 黑苹果自动构建工具 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify OpCore Simplify 是一款…

作者头像 李华
网站建设 2026/8/23 14:26:57

Buff 系统设计

上一篇讲行为组件的时候&#xff0c;减速组件干了件"甩锅"的事——它自己不管减速持续多久、什么时候消失&#xff0c;而是给目标挂了个 buff&#xff0c;然后就撒手不管了。 ctx.target.addBuff(slow); // 挂上去&#xff0c;剩下的交给buff系统那接锅的 buff 系统…

作者头像 李华
网站建设 2026/8/23 14:21:24

把PS3游戏跑流畅:RPCS3性能调优与配置完整指南

把PS3游戏跑流畅&#xff1a;RPCS3性能调优与配置完整指南 【免费下载链接】rpcs3 PlayStation 3 emulator and debugger 项目地址: https://gitcode.com/GitHub_Trending/rp/rpcs3 RPCS3 是目前完成度最高的 PS3 模拟器&#xff0c;可它并不是"装完就能玩"。…

作者头像 李华
网站建设 2026/8/23 14:19:33

1.4MB 跑通 107 种语言文本转语音,eSpeak NG 凭什么这么轻?

1.4MB 跑通 107 种语言文本转语音&#xff0c;eSpeak NG 凭什么这么轻&#xff1f; 【免费下载链接】espeak eSpeak NG is an open source speech synthesizer that supports 101 languages and accents. 项目地址: https://gitcode.com/gh_mirrors/es/espeak 给产品加上…

作者头像 李华
网站建设 2026/8/23 14:18:59

Redisson 与 Spring Boot 版本冲突:3 步定位并解决的排查指南

Redisson 与 Spring Boot 版本冲突&#xff1a;3 步定位并解决的排查指南 【免费下载链接】redisson Redisson: Valkey & Redis Java Client and Real-Time Data Platform. Sync/Async/RxJava/Reactive API. Over 50 Valkey and Redis based Java objects and services: Se…

作者头像 李华
网站建设 2026/8/23 14:17:19

PoB2 物品系统完整流程:从装备模拟到词缀优化的实战指南

PoB2 物品系统完整流程&#xff1a;从装备模拟到词缀优化的实战指南 【免费下载链接】PathOfBuilding-PoE2 项目地址: https://gitcode.com/GitHub_Trending/pa/PathOfBuilding-PoE2 Path of Building PoE2&#xff08;下称 PoB2&#xff09;是面向流放之路2 的桌面构建…

作者头像 李华