
ddd4j-satoken
DDD4J Sa-Token 鉴权扩展技能。覆盖 StpKit 扩展载荷模式(登录时写user/org/role、获取时用StpUtil.getExtra)、SaTempKit一次性令牌、与ApiRestResponse异常处理集成、跨服务Same-Token配置、@SaCheckPermission在DDD4J Controller中的使用方式。 当用户在 DDD4J 项目中使用 Sa-Token 做鉴权、需要登录扩展载荷(uuid/username/orgId)、生成一次性临时令牌时需要此技能。 配合 ddd4j-core 和 sa-token 技能使用。
- Installs
- 52
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/full-stack-skills/ddd-skills --skill ddd4j-satoken- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads ddd4j-satoken automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
DDD4J Sa-Token 鉴权扩展
编码 DDD4J 项目中 Sa-Token 的扩展用法。LLM 知道 Sa-Token 的标准 API,但不知道 DDD4J 的 StpKit 扩展模式。
为什么需要这个技能
LLM 会用 StpUtil.getLoginId() 获取登录用户——DDD4J 要求用 StpUtil.getExtra("uuid") 获取扩展载荷。LLM 不知道 DDD4J 登录时注入了 user/org/role 扩展参数。LLM 会用 SaTempUtil.createToken()——DDD4J 封装了 SaTempKit。
Capability Boundaries
✅ Strong Suits
- StpKit 扩展载荷 — 登录时注入 user/org/role,获取时用 StpUtil.getExtra()
- SaTempKit — DDD4J 封装的一次性临时令牌工具
- 异常处理集成 — Sa-Token 异常与 ApiRestResponse 的统一处理
- 多账号体系 — StpKit 门面模式区分用户和管理员
❌ Out of Scope
- Sa-Token 基础 API(login/checkPermission/注解鉴权) → sa-token(通用技能)
- 实体/Controller/Service 约定 → ddd4j-core
LLM 最常犯的错误
| # | 错误 | 正确做法 |
|---|---|---|
| 1 | StpUtil.getLoginId() 获取用户信息 | StpUtil.getExtra("uuid") / getExtra("username") |
| 2 | 登录只传 userId | 登录时注入扩展载荷(user/org/role) |
| 3 | SaTempUtil.createToken() | 用 SaTempKit.createToken()(DDD4J封装) |
| 4 | 直接抛 Sa-Token 异常 | 集成到 GlobalExceptionHandler 返回 ApiRestResponse |
| 5 | StpUtil.login(userId) 标准写法 | 用 StpKit 指定账号体系的 login |
| 6 | 跨服务鉴权用 Authorization header | 用 Same-Token + SaSameUtil |
核心规则速查
// ✅ 登录:注入扩展载荷
StpUtil.login(userId, new SaLoginParameter()
.setExtra("uuid", user.getUid()) // 用户唯一标识
.setExtra("username", user.getUserName()) // 用户名
.setExtra("orgId", user.getOrgId()) // 组织ID
.setExtra("role", user.getRoleCodes()) // 角色列表
.setExtra("realName", user.getRealName()) // 真实姓名
);
// ✅ 获取扩展载荷(而非 getLoginId)
String uuid = (String) StpUtil.getExtra("uuid");
String username = (String) StpUtil.getExtra("username");
String orgId = (String) StpUtil.getExtra("orgId");
// ✅ DDD4J 临时令牌
String token = SaTempKit.createToken(userId, 300); // 5分钟
Long id = SaTempKit.parseToken(token, Long.class);
// ✅ 跨服务鉴权
// Gateway: 注入 Same-Token
SaSameUtil.getToken();
// 子服务: 校验
SaSameUtil.checkCurrentRequestToken();
// 定时刷新(每5分钟)
@Scheduled(cron = "0 0/5 * * * ?")
public void refreshToken() { SaSameUtil.refreshToken(); }
Gotchas
- 登录时必须注入扩展载荷 — 否则
StpUtil.getExtra()返回 null - 扩展载荷只在 JWT 模式下生效 — 非 JWT 模式数据存在 Redis 中
- SaTempKit 是 DDD4J 封装,不是 Sa-Token 内置 — 依赖引入
sa-token-temp-jwt - Same-Token 默认一天有效期 — 生产环境必须配置定时刷新
- @SaCheckPermission 需在 StpInterface 中注册权限码 — 光加注解不够
- Sa-Token 异常需统一转换为 ApiRestResponse — 在 GlobalExceptionHandler 中处理
Data Privacy
本技能不收集、存储或传输任何用户数据。
FAQ
What does the ddd4j-satoken skill do?
DDD4J Sa-Token 鉴权扩展技能。覆盖 StpKit 扩展载荷模式(登录时写user/org/role、获取时用StpUtil.getExtra)、SaTempKit一次性令牌、与ApiRestResponse异常处理集成、跨服务Same-Token配置、@SaCheckPermission在DDD4J Controller中的使用方式。 当用户在 DDD4J 项目中使用 Sa-Token 做鉴权、需要登录扩展载荷(uuid/username/orgId)、生成一次性临时令牌时需要此技能。 配合 ddd4j-core 和 sa-token 技能使用。
How do I install ddd4j-satoken?
Run npx skills add https://github.com/full-stack-skills/ddd-skills --skill ddd4j-satoken in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/ddd4j-satoken/ (personal) or .claude/skills/ddd4j-satoken/ (project).
Which AI agents can use ddd4j-satoken?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is ddd4j-satoken safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains ddd4j-satoken?
It is published by full-stack-skills in full-stack-skills/ddd-skills. It has 52 recorded installs.
More from full-stack-skills/ddd-skills
ddd-code-reviewer
full-stack-skills/ddd-skills
DDD code review and anti-pattern detection — anemia model detection, layered compliance checking, aggregate design review, rich model verification, scoring system (5 dimensions), and ArchUnit automated validation. Use when user asks about code review, 代码审查, DDD review, 架构审查, anti-pattern detection, 反模式检测, or needs to check if code follows DDD.
ddd-api-designer
full-stack-skills/ddd-skills
API design from domain model — CQRS command/query separation, REST API endpoint design, data object conversion chain (PO→DO→DTO→VO), unified response format, OpenAPI/Swagger generation, BFF pattern, API versioning, and security design. Use when user asks about API design, REST API, OpenAPI, BFF, DTO design, 接口设计, or data object conversion.
ddd-architecture-clean
full-stack-skills/ddd-skills
Comprehensive guidance for Clean Architecture (整洁架构) — Robert C. Martin's Clean Architecture with Enterprise Business Rules, Use Cases, Interface Adapters, and Frameworks layers. Covers core entities, use case interactors, dependency rules, and full implementation steps with Java/Spring Boot examples. Use when user asks about Clean Architecture, 整洁架构, Robert Martin, Uncle Bob, use case driven architecture, or needs to implement DDD with clean architecture.
ddd-architecture-selector
full-stack-skills/ddd-skills
Architecture selection decision guide — help users choose from 5 DDD architectures (Layered/Onion/Hexagonal/Clean/COLA) with decision matrix, team size mapping, domain classification (core/generic/supporting), microservice splitting recommendation, and CQRS level suggestion. Use when user asks about architecture selection, 架构选型, COLA vs 六边形, cleaner architecture vs onion, 微服务拆分, or which architecture to use.
ddd-testing-strategist
full-stack-skills/ddd-skills
DDD testing strategy — domain model unit testing, aggregate root testing, repository testing with mocks, application service integration testing, adapter E2E testing, test pyramid for DDD layered/hexagonal/clean architectures, and Test-Driven Domain Design (TDDD). Use when user asks about testing strategy, 测试策略, DDD testing, aggregate test, repository test, test-driven domain design, or needs to test DDD applications.
ddd-architecture-doc
full-stack-skills/ddd-skills
DDD architecture documentation generation — C4 model diagrams (Context/Container/Component/Code), ADR (Architecture Decision Records), domain model documentation, API documentation, architecture decision log, and team communication templates. Use when user asks about architecture documentation, 架构文档, ADR, C4 diagram, domain model doc, 架构决策记录, or needs to document DDD architecture for team.
Popular other skills
hyperframes-cli
heygen-com/hyperframes
The HyperFrames CLI by job - scaffold, check, look at frames, edit the timeline, preview, render locally or in the cloud, publish, project history - plus reading its JSON and recovering from build or render failures.
triage
mattpocock/skills
Move issues and external PRs through a state machine of triage roles, categorise, verify, grill if needed, and write agent-ready briefs.
ask-matt
mattpocock/skills
Ask which skill or flow fits your situation. A router over the skills in this repo.
to-questionnaire
mattpocock/skills
Turn a decision you can't fully answer into a questionnaire for someone else to fill in.
loop-me
mattpocock/skills
Grill me about specs for the workflows I want to build, within this workspace.