关于 da-auth
用于获取并验证调用 DA Admin API 所需 Adobe IMS 访问令牌的技能。它会先检查缓存令牌,也支持通过辅助 CLI 浏览器登录、DA MCP 服务或手动输入令牌进行身份验证。
主要功能
- 01检查缓存令牌是否有效
- 02通过浏览器登录获取令牌
- 03支持 DA MCP 身份验证
- 04通过 DA API 验证令牌
适用场景
- 01推送 DA 内容前进行身份验证
- 02列出 DA 存储库中的文档
- 03启动 DA 内容预览
MCP 相关
如果会话中启用了 DA MCP 服务,该技能会引导调用方使用其身份验证工具启动 OAuth 并获取令牌。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ adobe/ skills --skill da-auth安装后在 Claude Code 中输入/da-auth确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
.releaserc.jsonCHANGELOG.mdpackage.json详细介绍
DA 认证
获取有效的 Adobe IMS 访问令牌,并将其存储在 DA_TOKEN 中,以供后续调用 admin.da.live API 时使用。
何时使用此技能
每当你需要调用 DA Admin API(admin.da.live)且当前作用域中没有有效令牌时,都应使用此技能。常见情况:
- 在 DA 中推送或更新页面内容
- 列出 DA 存储库中的文档
- 触发 DA 内容预览
以下情况请勿使用此技能:
- 你已在当前会话中获取
DA_TOKEN,且令牌尚未过期(令牌有效期约为 1 小时,另有 60 秒缓冲时间) - create-site 技能已在其自身流程中处理身份验证
- 当前会话中有 DA MCP 服务处于活动状态 — 请直接使用其身份验证工具
前提条件
- 已安装 Node.js 18+
- 机器可访问浏览器(用于 OAuth 流程)
- 可访问网络
ims-na1.adobelogin.com
相关技能
- create-site — 新站点接入时包含自身的 DA 身份验证步骤;在该流程中请勿单独调用 da-auth
- content-driven-development — 将编写的内容推送到 DA 之前,先使用 da-auth
- building-blocks — 如果需要将测试内容推送到 DA 以进行区块开发,请使用 da-auth
- snowflake — 在第 5 阶段(往返)之前调用 da-auth,以便 snowflake 将转换后的页面 PUT 到 DA 时
$DA_TOKEN已设置 - da-content — 获取
$DA_TOKEN后如何使用它的参考(Source API、预览/发布)
第 1 步:检查缓存的令牌
触发浏览器登录之前,检查是否已缓存有效令牌。
DA_TOKEN=$(node -e "
const fs = require('fs');
const p = process.env.HOME + '/.aem/da-token.json';
try {
const t = JSON.parse(fs.readFileSync(p, 'utf8'));
if (t.expires_at > Date.now() + 60000) process.stdout.write(t.access_token);
} catch {}
")
如果 DA_TOKEN 非空,请跳至第 3 步。
第 2 步:获取令牌*(需要登录)*
选择适合当前环境的选项:
选项 A(优先)— da-auth-helper CLI:
da-auth-helper 工具会处理完整的 IMS OAuth 2.0 隐式流程,将令牌缓存到 ~/.aem/da-token.json,并将令牌输出到 stdout。
# Run directly without a global install
DA_TOKEN=$(npx github:adobe-rnd/da-auth-helper token)
如果无法使用 npx 或速度较慢,请先全局安装:
npm install -g github:adobe-rnd/da-auth-helper
DA_TOKEN=$(da-auth-helper token)
这将打开一个浏览器窗口。请告知用户:
请在刚打开的浏览器窗口中完成 Adobe IMS 登录。登录后,系统会自动捕获令牌。
成功标志:DA_TOKEN 是一个非空 JWT 字符串,以 eyJ 开头。
选项 B — DA MCP 服务:
如果当前会话中已配置 DA MCP 服务,请使用其身份验证工具启动 OAuth 流程,并从响应中获取令牌。
选项 C — 手动粘贴(最后手段):**
我需要 Adobe IMS 访问令牌才能将内容推送到 DA。你可以从浏览器中复制一个令牌:
- 打开 da.live 并登录
- 打开开发者工具 → Network 标签页 → 找到任意一个发往
admin.da.live的请求- 复制
Authorization: Bearer <token>值(不包括Bearer前缀)- 在这里粘贴
第 3 步:验证令牌是否有效
继续操作之前,确认 DA API 接受此令牌:
curl -s -o /dev/null -w "%{http_code}" \
-H "Authorization: Bearer {{DA_TOKEN}}" \
"https://admin.da.live/list/{{ORG}}/{{REPO}}"
成功标志:HTTP 200。令牌有效 — DA_TOKEN 已准备好供调用此技能的技能使用。
故障排除
| 症状 | 可能原因 | 解决方法 |
|---|---|---|
第 1 步后 DA_TOKEN 为空 | 没有缓存令牌,或令牌已过期 | 继续执行第 2 步 |
| 浏览器窗口未打开 | npx / da-auth-helper 被阻止,或环境为无头环境 | 使用选项 B(MCP)或选项 C(手动粘贴) |
npx github:adobe-rnd/da-auth-helper 失败 | GitHub 软件包注册表受到网络限制 | 使用选项 B(DA MCP 服务)或选项 C(手动粘贴令牌) |
第 3 步返回 401 | 令牌在步骤之间过期 | 重新执行第 2 步以刷新令牌 |
第 3 步返回 403 | 已通过身份验证的用户无权访问 {{ORG}}/{{REPO}} | 请用户确认其对该组织/存储库的 DA 权限 |
参考资料
- DA Auth Helper: https://github.com/adobe-rnd/da-auth-helper
- DA Admin API: https://opensource.adobe.com/da-admin/
- 令牌缓存位置:
~/.aem/da-token.json