Token导航 LogoToken导航TokenDH.com
开发执行命令clawhub未标认证来源可访问clear审计提醒

vipshop-user-login唯品会用户登录

Agent Skill

vipshop-user-login 用于补充开发相关能力,适合在 OpenClaw 中需要让 Agent 承接开发相关任务时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

8,459

周安装

356

GitHub Stars

1

下载量

2,962
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:vipshop-user-login(唯品会用户登录)
来源仓库:https://github.com/viphgta/vipshop-user-login
安装命令:
openclaw skills install vipshop-user-login
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install vipshop-user-login

简介

唯品会账号扫码登录专用技能。vipshop-user-login 属于开发类 Skill,可作为该场景下的辅助能力补充。

  • 自动完成二维码展示、扫描确认和登录态保存流程。
  • 需在 ~/.vipshop-user-login/tokens 路径下存储认证信息。
  • 通过 clawhub 安装,需确认目录写入权限。
  • 建议定期清理旧登录会话,保障账户安全。

SKILL.md

name
vipshop-user-login
description
>

唯品会扫码登录 Skill

⚠️ 重要规范:AI 必须先加载本 skill 规范(use_skill),再执行任何脚本或返回结果,不得绕过 skill 规范自行处理数据。 二维码展示规范:执行登录脚本后,AI 智能体 必须优先 从 stdout 中提取机器可读标记:[VIPSHOP_QR_PAYLOAD_BEGIN][VIPSHOP_QR_PAYLOAD_END] 之间的 JSON,读取其中的 qrImageUrl 字段,并以 Markdown 图片语法 ![唯品会登录二维码](URL) 直接展示给用户。仅当该标记不存在时,才允许回退到提取 二维码链接 后面的 URL。不要仅输出链接或文字描述,必须展示图片

此Skill提供唯品会扫码登录的完整解决方案,用于AI助手自动化完成唯品会账号登录流程。

使用场景

  • AI助手需要访问唯品会用户数据
  • 自动化脚本需要模拟用户登录
  • 集成测试需要真实用户身份
  • 数据整理需要登录态

工作流程

┌──────────────┐     ┌──────────────┐     ┌──────────────┐
│  初始化二维码  │ ──→ │  展示二维码   │ ──→ │  轮询状态    │
└──────────────┘     └──────────────┘     └──────────────┘
       │                                          │
       │ 2. 返回qrToken                           │
       │←─────────────────────────────────────────┤
       │                                          │
       ▼                                          │
┌──────────────┐                                 │
│  用户扫码     │←────────────────────────────────┤
│  确认登录     │                                 │
└──────────────┘                                 │
       │                                         │
       │ 3. CONFIRMED                            │
       │─────────────────────────────────────────→│
       │                                         │
       ▼                                         ▼
┌──────────────┐                       ┌──────────────┐
│  登录成功     │                       │  保存Cookie   │
└──────────────┘                       └──────────────┘
  1. 初始化二维码 - 调用API获取qrToken(自动校验格式,格式错误自动重试)
  2. 获取二维码图片 - 使用qrToken获取二维码图片并展示
  3. 轮询状态 - 定时检查扫码状态(NOT_SCANNED/SCANNED/CONFIRMED/INVALID)
  4. 登录成功 - 状态为CONFIRMED时,Cookie中已包含登录凭证

核心功能

1. 获取登录二维码

from scripts.vip_login import VIPLoginManager

manager = VIPLoginManager()
result = manager.login()

2. 展示二维码

支持多种展示方式:

  • 终端显示 - 使用ASCII字符在终端显示(适合SSH环境)
  • 打开图片 - 生成图片文件并用系统默认程序打开
  • AI智能体展示 - 脚本输出二维码链接 URL,AI 智能体应提取该 URL 并以 ![唯品会登录二维码](URL) 展示图片
  • OpenClaw展示 - 检测 OPENCLAW_SESSION=1 时输出 [OPENCLAW_SEND_FILE]路径[/OPENCLAW_SEND_FILE]

3. 轮询登录状态

自动轮询二维码状态,检测:

  • NOT_SCANNED - 未扫码
  • SCANNED - 已扫码(等待确认)
  • CONFIRMED - 已确认登录(成功)
  • INVALID - 二维码过期/失效

4. Cookie管理

  • 登录凭证自动保存到 ~/.vipshop-user-login/tokens.json
  • 单用户模式,自动覆盖旧登录态
  • 基于Cookie的会话保持
  • 登录态有效期与 PASSPORT_ACCESS_TOKEN cookie 一致

5. 版本检测与更新提示

登录成功后,脚本会输出版本信息并检测版本变化:

  • 登录成功后会输出当前版本号(如 当前版本: 1.0.0
  • tokens.json 中保存当前版本号 version
  • 如果检测到新版本,脚本只会提示用户按受控发布流程手动更新,不会自动执行更新命令,也不会远程下载并覆盖本地文件;提示信息中会给出可手动执行的命令 npx clawhub update vipshop-skills --force

AI 助手职责

  1. 登录成功后,必须将脚本输出的当前版本号告知用户(如"当前登录版本为 1.0.0")
  2. 如果脚本提示有新版本,AI 必须提示用户按受控发布流程手动更新,并可转述脚本给出的手动命令 npx clawhub update vipshop-skills --force;如需查看最新版本,可访问 https://github.com/vipshop/vipshop-ai-skills

使用方法

命令行使用

默认非阻塞模式(获取二维码后立即结束,不等待扫码):

# 执行扫码登录(非阻塞模式,获取二维码后结束)
python scripts/vip_login.py

# 使用阻塞模式(获取二维码后等待扫码完成)
python scripts/vip_login.py --blocking

# 在终端显示二维码(不打开图片)
python scripts/vip_login.py --terminal

# 指定请求来源
python scripts/vip_login.py --where-from xxx

# 查看已登录记录
python scripts/vip_login.py --list

# 查看登录状态
python scripts/vip_login.py --status

# 注销登录记录
python scripts/vip_login.py --logout TOKEN_ID

# 使用指定qrToken继续登录(非阻塞模式后)
python scripts/vip_login.py --poll <qrToken>

# 继续上次未完成的登录
python scripts/vip_login.py --continue

Python API使用

from scripts.vip_login import VIPLoginManager, Config

# 方式1: 使用默认配置
manager = VIPLoginManager()
result = manager.quick_login()

if result.success:
    print(f"登录成功!")
    print(f"qrToken: {result.qr_token}")
    if result.redirect_url:
        print(f"跳转URL: {result.redirect_url}")
else:
    print(f"登录失败: {result.message}")

# 方式2: 自定义配置
class MyConfig(Config):
    SHOW_IN_TERMINAL = True   # 在终端显示二维码
    POLL_INTERVAL = 1         # 轮询间隔1秒
    POLL_TIMEOUT = 180        # 超时3分钟

manager = VIPLoginManager(MyConfig())
result = manager.login(where_from="my_app")

# 获取已保存的登录凭证
token_info = manager.get_stored_token("current_user")
if token_info:
    print(f"用户ID: {token_info.user_id}")
    print(f"Cookies: {token_info.cookies}")

非阻塞交互式登录(AI助手/OpenClaw场景)

适用于AI助手或OpenClaw场景:发送二维码给用户后立即结束脚本,不阻塞主会话。用户扫码确认后,通过后续命令继续完成登录。

AI 智能体二维码展示: 脚本执行后会在 stdout 中输出以下机器可读片段:

[VIPSHOP_QR_PAYLOAD_BEGIN]
{"qrToken": "10000-xxx", "qrImageUrl": "https://passport.vip.com/qrLogin/getQrImage?qrToken=10000-xxx"}
[VIPSHOP_QR_PAYLOAD_END]

AI 智能体应优先提取该 JSON 中的 qrImageUrl,并以 Markdown 图片语法 ![唯品会登录二维码](URL) 直接展示二维码图片。仅当该标记不存在时,才回退到读取 二维码链接: 后面的 URL。该链接为公网可访问 URL,无需依赖本地文件。

OpenClaw 自动识别: 当检测到 OPENCLAW_SESSION=1 环境变量时,脚本会自动输出 [OPENCLAW_SEND_FILE]路径[/OPENCLAW_SEND_FILE],OpenClaw 可直接在会话中展示图片。

from scripts.vip_login import VIPLoginManager

manager = VIPLoginManager()

# 定义发送二维码给用户的回调
def send_qr_to_user(image_bytes: bytes, image_format: str):
    """将二维码图片发送给用户"""
    # 实现你的发送逻辑,例如通过消息平台发送图片
    print(f"[发送二维码给用户] 格式: {image_format}, 大小: {len(image_bytes)} bytes")
    # 这里可以调用你的消息发送API

# 执行非阻塞登录
result = manager.login(
    where_from="my_app",
    send_qr_to_user_callback=send_qr_to_user
)

if result.success and result.qr_token:
    if result.message == "二维码已发送,请扫码确认后使用 --poll 参数继续":
        print(f"二维码已发送,qrToken: {result.qr_token}")
        print(f"如果二维码展示失败,请点击 {result.qr_url} 查看二维码")
        print("用户扫码确认后,调用 manager.login(qr_token_to_poll=qr_token) 继续")
    else:
        print("登录成功!")
else:
    print(f"登录失败: {result.message}")

后续继续登录流程:

# 用户扫码确认后,使用之前保存的 qrToken 继续
result = manager.login(qr_token_to_poll="之前保存的qrToken")

if result.success:
    print("登录成功!")
else:
    print(f"登录失败: {result.message}")

分步骤使用

from scripts.qr_code_client import QRCodeClient
from scripts.status_poller import StatusPoller, LoginStatus
from scripts.token_manager import TokenManager, TokenInfo
import time

# 1. 获取二维码
qr_client = QRCodeClient(
    base_url="https://passport.vip.com",
    init_endpoint="/qrLogin/initQrLogin",
    image_endpoint="/qrLogin/getQrImage"
)

success, qr_token, data = qr_client.init_qr_code(where_from="xxx")
if success:
    # 2. 展示二维码
    success, image_bytes, fmt = qr_client.get_qr_image(qr_token)
    qr_client.open_qr_image(image_bytes, fmt)

    # 3. 轮询状态
    poller = StatusPoller(
        base_url="https://passport.vip.com",
        check_endpoint="/qrLogin/checkStatus"
    )
    result = poller.poll_until_complete(qr_token)

    if result.status == LoginStatus.CONFIRMED:
        print("登录成功!")
        # 4. 保存凭证(从响应中提取 cookies)
        token_mgr = TokenManager()
        token_info = TokenInfo(
            cookies={"session": "xxx"},  # 从 result.raw_http_response 中提取
            user_id="user_id",
            nickname="nickname",
            expires_at=time.time() + 7 * 24 * 3600
        )
        token_mgr.save_token("current_user", token_info)

配置说明

scripts/vip_login.pyConfig 类中可以自定义以下参数:

class Config:
    # API 配置
    BASE_URL = "https://passport.vip.com"
    INIT_QR_ENDPOINT = "/qrLogin/initQrLogin"
    GET_QR_IMAGE_ENDPOINT = "/qrLogin/getQrImage"
    CHECK_STATUS_ENDPOINT = "/qrLogin/checkStatus"

    # 轮询配置
    POLL_INTERVAL = 1    # 轮询间隔(秒),建议每秒轮询一次
    POLL_TIMEOUT = 180   # 超时时间(秒),二维码有效期约3分钟

    # 二维码配置
    SHOW_IN_TERMINAL = False  # False=打开图片, True=终端显示

    # 交互模式配置(默认非阻塞模式)
    NON_BLOCKING_MODE = True  # True=非阻塞(获取二维码后结束), False=阻塞(等待扫码完成)

API接口文档

详细的API接口规范请参考 references/api_reference.md

主要接口:

  • POST /qrLogin/initQrLogin - 初始化二维码(返回qrToken)
  • GET /qrLogin/getQrImage?qrToken=xxx - 获取二维码图片
  • POST /qrLogin/checkStatus - 轮询状态

状态值说明:

状态说明
NOT_SCANNED未扫描
SCANNED已扫描
CONFIRMED已确认登录(成功)
INVALID已失效

依赖安装

pip install requests qrcode Pillow

目录结构

vipshop-user-login/
├── SKILL.md                      # 此文档
├── scripts/
│   ├── vip_login.py              # 主登录脚本(入口)
│   ├── qr_code_client.py         # 二维码处理
│   ├── status_poller.py          # 状态轮询
│   ├── token_manager.py          # Token管理
│   ├── mars_cid_generator.py     # 设备ID生成器
│   └── logger.py                 # 日志上报(问题排查)
└── references/
    └── api_reference.md          # API接口文档

其他技能集成

本 Skill 登录成功后,会在 ~/.vipshop-user-login/tokens.json 中保存登录态。

其他技能可以通过以下方式获取登录态:

import json
from pathlib import Path

# 读取 cookies
token_file = Path.home() / ".vipshop-user-login" / "tokens.json"

if token_file.exists():
    with open(token_file, 'r') as f:
        data = json.load(f)
        cookies = data.get("cookies", {})
else:
    cookies = {}

详见:集成指南

注意事项

  1. 二维码有效期: 二维码默认3分钟过期,超时后状态变为INVALID,需重新获取
  2. 轮询频率: 建议每秒轮询一次,避免频繁请求导致IP被封
  3. Cookie保持: 登录成功后,Cookie会自动包含登录凭证,无需额外获取token
  4. Token安全: 凭证文件存储在用户目录~/.vipshop-user-login/下,权限设置为仅所有者可读写
  5. 依赖项: 需要安装 requests、qrcode、Pillow
  6. qrToken格式: 系统会自动校验qrToken格式(如10000-xxx),格式错误会重试或报错,不会生成无效二维码

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

96.01%
按下载量换算2,844

安全审计

VirusTotal

可疑

ClawScan

通过

Static analysis

通过

权限和风险

执行命令

安装流程涉及命令执行,可能通过 openclaw skills install vipshop-user-login 联网下载 Skill 或依赖。用户安装前应确认命令来源、仓库内容和执行环境。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills