PKU Info Auth

用于北大系统登录的凭据管理工具,支持安全存储与自动认证。

已扫描
适合谁
北京大学在校学生、需要自动化操作北大系统的开发者或 AI 工具使用者
不适合谁
非北大用户、无需登录北大系统的普通用户
国内可用性
需网络配置。可能需要网络配置或第三方服务可访问。
安装难度
新手友好(★☆☆)。基于终端操作、依赖、API Key 和本地环境要求的初步判断。

安装与下载

openclaw skills install @wjsoj/pku-info-auth

Skill 说明

命令、参数、文件名以原文为准

Info-Auth - PKU 统一凭据管理 CLI

用于所有基于 PKU IAAA 的 CLI 工具的安全凭据管理。允许 AI Agent 在不直接接触密码的情况下触发登录流程。

为什么需要这个工具

AI Agent(如 OpenClaw/Claude Code)不应也不可以直接处理用户密码。本工具让用户仅需一次将凭据存储到操作系统密钥环中,后续所有 CLI 工具均可自动从密钥环读取凭据完成认证。

架构设计

  • 代码库位置crates/info-auth/
  • 后端实现:通过 keyring crate 使用操作系统密钥环

- Linux:D-Bus 密码服务(GNOME Keyring / KDE Wallet)

- macOS:Apple Keychain

- Windows:Windows 凭据管理器

  • 密钥环服务名称info-pku

CLI 命令

命令别名功能
storesave交互式输入并存储凭据至操作系统密钥环
status显示凭据存储状态(从不显示密码)
check显示所有服务的会话状态(treehole/course/campuscard/elective)
clear从操作系统密钥环中移除凭据

凭据获取优先级顺序

当任意 CLI 工具执行 login -p 时,凭据按以下顺序解析:

  1. 操作系统密钥环 — 通过 info-auth store 存储(推荐方式)
  2. 环境变量PKU_USERNAME + PKU_PASSWORD(适用于 CI/自动化场景)
  3. 交互式提示 — 作为后备,通过 stdin 提示输入用户名和密码

短信验证码的处理遵循类似逻辑:

  1. 环境变量PKU_SMS_CODE(Agent 可在询问用户后设置)
  2. 交互式提示 — 作为后备

对 AI Agent 的快速上手指南

首次设置(用户手动执行一次)

info-auth store
# 用户交互式输入用户名和密码
# 凭据被加密存储至操作系统密钥环

Agent 工作流

# 1. 检查各服务当前会话状态
info-auth check

# 2. 登录任意服务(自动从密钥环读取凭据)
treehole login -p
course login -p
campuscard login -p
elective login -p          # 可能需要:--dual major / --dual minor

# 3. 若需短信验证(如 treehole 首次登录):
#    向用户索取验证码,然后设置环境变量:
PKU_SMS_CODE=123456 treehole login -p

# 4. 使用对应服务功能
treehole list
course courses --all
campuscard info
elective show

Agent 必须遵守的关键规则

  • 绝不将密码作为命令行参数传递
  • 绝不尝试直接读取密钥环内容 —— 应使用 info-auth status 查询状态
  • info-auth check 显示“未登录”或“会话已过期”,请运行 <tool> login -p
  • 若登录失败提示“系统密钥链中未存储凭据”,请引导用户执行 info-auth store

开发说明

  • 所有面向用户的字符串均使用中文
  • 错误处理:使用 anyhow::Result 并配合 .context("中文描述")
  • store 命令要求密码二次确认(需重复输入两次)
  • keyring_has_credential() 在失败时返回诊断信息,便于调试
W
@wjsoj

已收录 1 个 Skill

相关推荐