meituan-passport-user-authlisted
Install: claude install-skill texteditorscorpius2015/jinguyuan-dumpling-skill
# 美团 Passport 用户授权登录
## 执行流程
### Step 0:安装 `mt-passport` CLI
**会话前置,每次会话只执行一次。** 后续步骤遇到 `command not found` 时再重新执行。
LLM 执行本步骤时,将 `<SKILL_DIR>` 替换为本 SKILL.md 文件所在的目录绝对路径:
```bash
command -v npm &>/dev/null || { echo "❌ 未找到 npm,请先安装 Node.js(>=18):https://nodejs.org"; exit 1; }
TGZ="<SKILL_DIR>/scripts/"*.tgz
PKG_VER=$(tar -xOf $TGZ package/package.json 2>/dev/null | grep '"version"' | sed 's/.*"version": *"//;s/".*//')
LOCAL_VER=$(mt-passport --version 2>/dev/null)
if [ "$PKG_VER" = "$LOCAL_VER" ]; then
echo "✅ mt-passport 已就绪($LOCAL_VER)"
else
npm install -g $TGZ && echo "✅ mt-passport 安装成功($PKG_VER)" || echo "❌ 安装失败,请重试"
fi
```
---
### Step 1:确认参数
**STOP — 必须先确认以下三项,再执行后续步骤。**
**1. client_id(必填)**
按以下优先级查找,找到即用,不再追问:
1. 调用方 Skill 的 `skill-dependencies.meituan-passport-user-auth.client_id`
2. 环境变量 `MT_PASSPORT_CLIENT_ID`
3. 用户在对话中明确提供的值
以上均无时,**STOP**,向用户索要:
```
请提供您的 client_id,才能继续发起授权。
```
**2. 环境(默认 prod)**
按以下优先级确定环境,找到即用:
1. 调用方 Skill 的 `skill-dependencies.meituan-passport-user-auth.env` 字段
2. 环境变量 `MT_PASSPORT_ENV`
3. 用户在对话中明确说「测试环境」「test」
4. 以上均无:默认 `prod`,无需询问用户
**环境一致性约束(必须):** 确定环境后,`client_id` 必须与环境匹配,禁止 test 环境使用 prod 的 `client_id`,反之亦然。若发现不一致,**STOP**,告知用户:
```
❌ 环境与 client_id 不匹配:当前环境为 <env>,但 client_id 可能属于另一环境,请确认后重试。
```
**3. 是否强制重新授权(默认否)**
用户明确说「重新授权」「强制刷新」「忽略缓存」时,添加 `--force` 参数。
**4. 泳道地址(可选)**
用户明确说「泳道」「自定义地址」或提供了具体 URL 时,添加 `--base_url <url>` 参数(优先级高于 `--env`)。
---
### Step 2:运行授权登录脚本
**首先尝试从缓存获取 Token(未使用 `--force` 时执行):**