星锁StarLock
人机验证 SDK 与服务
面向网站与 Web 应用的验证码组件、挑战 API 与服务端复核。
星锁提供统一的会话、挑战与凭证流程,已实现数字、字符、算术、直线拼图、曲线拼图和圆环旋转六种题型。前端通过托管脚本加载验证码,也可以在 Vue 3 或 React 18/19 中使用同一份 SDK。
Python · FastAPIRedisTypeScript · Vue 3 · ReactMIT
已实现的验证方式
- 传统图片验证支持纯数字、字母数字与算术题,输入答案后由服务端校验。
- 直线拼图和曲线拼图分别控制运动路径与贝塞尔速度缓动,并同步改变图形角度。
- 拼图、五角星、正方形和长方形可生成多个缺口,仅一个位置与角度能够匹配。题面约束行程、边界与缺口间隔。
- 圆环题通过滑块旋转内圈,与固定外圈恢复对齐,交界处采用轻度模糊与羽化处理。
- 验证码默认使用紧凑弹窗,支持关闭按钮、遮罩点击、Esc 与键盘微调,关闭后恢复触发控件焦点。
接入你的业务
- 业务后端用站点密钥创建验证会话,绑定本次业务动作与上下文,将短期票据交给浏览器。
- 浏览器加载托管
api.js,调用StarLock.render(),或使用 Vue / React 组件展示挑战。 - 验证完成取得 token 后,将其随业务请求交给后端。后端调用
/v1/siteverify复核并消费一次性凭证,再执行业务。
挑战与答案校验由 FastAPI 服务负责,Redis 保存短期状态,SQLite 保存本地站点配置。接入来源按站点授权,站点密钥保存在业务后端。
本地运行需要 Python、Node.js 与 Redis。源码提供官网体验页、无框架跨源接入示例,以及完整的启动、配置和测试说明。
开发进度
当前版本为 0.7.0 本地开发版,前后端核心流程、托管 SDK 和六种挑战已实现。点选、九宫格、行为评分与无感风控列入后续开发计划。
npm 包、正式 CDN 与公共验证 API 尚未发布。生产部署、容量测试、真实触屏设备与其他浏览器的完整验收仍待完成。