- AI 应用
- 提示工程
- 人工智能
- 前端
【免费下载链接】ChatGPT-Shortcut
Stop writing prompts from scratch — a searchable prompt library for ChatGPT, Claude, Gemini and Cursor · Русский 한국어 العربية हिन्दी ไทย | 别再从头写提示词:现成的拿来就用,好用的收进自己的库
AiShort(ChatGPT-Shortcut)本身允许匿名使用,但只有登录账户后,才能收藏喜欢的提示词、创建自己的提示词、分享到社区并在多设备间同步数据。本篇指南将基于仓库中的 账户文档 与前端源码,完整讲解登录、注册、密码管理、等级体系与数据导入导出,读完即可独立完成账户的全生命周期管理。
不登录也能用,登录后解锁完整能力
AiShort 的设计原则是"零门槛可用":首页的精选提示词库、搜索、复制等核心功能都不需要账户。但从 账户文档 的定位来看,登录后你才拥有四项关键能力:
- 收藏提示词:把社区或精选库中喜欢的提示词收入自己的收藏夹;
- 创建自定义提示词:编写专属于自己的提示词并保存到账户;
- 分享到社区:将自己的提示词发布到公共页面供其他用户浏览与收藏;
- 跨设备同步:账户数据绑定云端,换设备登录即可恢复。
登录状态由 AuthContext.tsx 统一管理:登录成功后 JWT 被写入localStorage的auth_token键,并通过Stale-While-Revalidate策略先行渲染缓存数据、再后台刷新权威数据,从而避免刷新页面时出现登录态闪烁。该文件还会在本地校验 JWT 的exp字段(提前 60 秒兜底时钟偏差),过期 token 会被自动清除。
三种登录方式
登录对话框(实现见 login.tsx)提供两个 Tab:"密码登录" 与 "免密登录",下方还有Google 一键登录按钮,三者的认证逻辑统一封装在 auth.ts 中。
密码登录
在"密码登录"Tab 中输入注册时的用户名或邮箱+密码即可登录。对应的后端接口是POST /auth/local(见 auth.ts),提交参数为identifier(用户名或邮箱)与password。前端校验规则(见 login.tsx)要求:
- 用户名/邮箱为必填项;
- 密码必填且长度至少 6 个字符。
登录成功后,auth.ts 中的clearUserCachesOnLogin()会立即清除旧的用户级缓存(USER_PROFILE 与 MySpace 缓存),防止旧账号残留的 ETag 与新账号巧合命中导致数据泄漏——这是登录切换场景下的重要安全细节。
免密码登录(Magic Link)
不想记密码?切换到"免密登录"Tab:
- 输入已注册的邮箱(或用户名);
- 点击"获取登录链接",系统通过
POST /passwordless/send-link向邮箱发送一次性登录链接(见 auth.ts); - 打开邮件中的链接,前端通过
GET /passwordless/login?loginToken=...完成认证并持久化 JWT。
前端实现会根据输入内容动态判定传参:若输入符合邮箱格式则传{ email },否则传{ username }(见 login.tsx)。这种方式适合偶尔登录、不想维护密码的用户。
Google 一键登录
点击登录框中的 Google 按钮,会弹出520×570的 OAuth 授权窗口,首次使用会自动创建账户,无需单独注册。整个流程分为两步(实现见 auth.ts):
- 获取授权 URL:根据 config.ts 中的
USE_LEGACY_GAUTH开关选择流程——当前配置为false,走新版 Strapi 原生流程,构建GET /api/connect/google?redirect=...地址; - 回调换取 JWT:
googleLogin()解析回调返回的jwt与用户信息,必要时再通过GET /api/users/me(Bearer令牌)拉取完整用户资料,最后同样执行缓存清理。
值得留意的是源码注释(见 config.ts):Google OAuth 使用了独立服务gauth.aishort.top,原因是主服务器无法直接连接 Google——这是部署层的一个架构事实,若自建部署需要一并规划该服务的可用性。
注册账户
在登录对话框点击"立即注册"切换至注册表单(viewState切换逻辑见 login.tsx):
- 填写邮箱(格式校验)、用户名与密码(至少 6 位);
- 勾选同意服务条款与隐私政策——该项为必选,未勾选时前端会阻止提交(校验器见 login.tsx);
- 点击注册,通过
POST /auth/local/register创建账户(见 auth.ts),提交后自动登录。
注册页同样支持切回登录("直接登录"按钮)。服务条款与隐私政策的完整文本可在仓库 docs/terms-of-service.md 与 docs/privacy-policy.md 中查看。
我的账户:档案、密码与等级
登录后进入"我的账户"页面(实现见 pages/user/index.tsx),可统一管理个人资料、安全设置、等级与数据。页面顶部通过面包屑提供"首页 → 用户中心"导航,用户信息通过GET /users/me拉取,并使用 ETag +If-None-Match做高效缓存(见 user.ts)。
修改用户名
点击用户名右侧的编辑图标,输入新用户名后保存。前端会先校验非空,再调用PUT /favorites/update-username提交(见 pages/user/index.tsx 与 user.ts)。
修改密码
在"安全设置"卡片中按三步修改:
- 输入当前密码;
- 输入新密码并再次确认(两次必须一致,前后端均有校验);
- 点击"修改密码"提交。
底层调用POST /auth/change-password,提交password、currentPassword、passwordConfirmation三个字段(见 auth.ts)。注意:该表单仅在userInfo.provider === "local"(本地注册用户)时展示当前密码字段——Google 登录用户无需修改本地密码。
忘记密码
在登录对话框点击"忘记密码?",输入注册邮箱并点击"发送重置邮件";邮件中的重置链接会引导至重置页(src/pages/reset-password.tsx)。对应的两个接口是:
POST /auth/forgot-password——发送重置邮件(见 auth.ts);POST /auth/reset-password——携带邮件中的code与新旧密码完成重置(见 auth.ts)。
我的等级(L0–L9)
账户页会展示你的等级与晋级进度。等级由向社区分享的提示词数量决定,而非收藏或登录次数。完整的 10 级阈值曲线定义在 LevelSystem.tsx:
| 等级 | 名称 | 所需分享数(阈值) |
|---|---|---|
| L0 | 萌新探索者 | 0 |
| L1 | 青铜 | 1 |
| L2 | 白银 | 3 |
| L3 | 黄金 | 8 |
| L4 | 铂金 | 18 |
| L5 | 钻石 | 35 |
| L6 | 蓝宝石 | 60 |
| L7 | 红宝石 | 100 |
| L8 | 翡翠 | 160 |
| L9 | 星辉 | 260 |
源码中的常量LEVEL_THRESHOLDS = [0, 1, 3, 8, 18, 35, 60, 100, 160, 260]即上表依据;getLevelInfo()(见 LevelSystem.tsx)根据分享数计算当前等级与下一级阈值,账户页则据此渲染进度条(sharedCount / next)。从源码结构看,等级还配有"矿物标本卡"风格的几何图标体系:每升一级图标外多边形边数 +1,L6 起叠加内嵌多边形、中心点、粗描边与径向射线,用于视觉化呈现成长梯度。
数据管理:缓存、导出与导入
"我的账户 → 数据管理"区域(见 pages/user/index.tsx)提供三个操作,与 Prompt Kustom(自定义提示词) 文档中的数据备份流程配套使用。
清除缓存
当数据不刷新、界面显示异常(例如收藏后列表未更新)时,点击"清除所有缓存"即可强制重新同步。实现上它会:
- 调用
clearUserProfileCache()清除用户基本信息缓存及其 ETag; - 调用
clearMySpaceCache()清除 MySpace(收藏/自定义提示词)缓存; - 重新拉取用户数据。
详见 pages/user/index.tsx。收藏与自定义提示词不会因此丢失,这只是强制从服务器重新拉取,界面刷新后即恢复。
导出提示词
"导出提示词"会把你的数据打包成 JSON 文件自动下载,便于备份与迁移。导出的内容(见 pages/user/index.tsx)包括:
- prompts:每个自定义提示词的
id、title、内容、备注、附注与分享状态; - favorites:收藏的精选卡与社区提示词 ID 数组(另附
favoriteDetails供人工查看); - myspaceOrder:MySpace 的排序信息;
- customTags:自定义标签定义。
文件以my-prompts-YYYY-MM-DD.json命名。文档明确建议定期导出以防数据丢失,导出的详细字段说明可参考 自定义提示词文档的导出章节。
导入提示词
"导入提示词"允许从 JSON 文件恢复提示词与收藏,导入逻辑见 pages/user/index.tsx:
- 兼容多种 JSON 结构:数组、带
prompts字段的对象、单条提示词对象均可解析; - 内容相同的条目自动跳过(按标题去重);
- 已有 ID 的提示词若属于当前账户则更新;
- ID 不属于当前账户的提示词会强制设为私密(
share: false),保证团队成员之间的数据隔离; - 收藏采用合并模式(
loves.add/commLoves.add增量 PATCH),避免多设备并发覆盖; - 导入完成后自动刷新 MySpace 数据。
这套"导出 → 筛选 → 分发 → 导入"的流程非常适合团队协作:把精选过的提示词文件发给同事导入后,每个人收到的提示词默认私有,互不干扰。排序与标签字段在联网版导入时会被保留在 JSON 中但不会恢复(因为导入后的提示词 ID 是新的,无法对应原排序),本地离线版则可安全恢复。
相关文档
账户体系与以下指南联动使用,可在仓库中继续深入:
- 快速上手(Memulai / Getting Started):基础使用方式;
- 我的收藏(Koleksi Saya / My Collection):收藏夹与标签管理;
- 自定义提示词(Prompt Kustom / Custom Prompts):提示词的创建、编辑、分享与导入导出。
如果你需要以其他语言阅读本文档,仓库还维护了 英文版 及多语言版本(位于 i18n 目录下)。账户相关的所有前端认证与数据接口实现,可分别深入 src/api/auth.ts、src/api/client.ts、src/components/AuthContext.tsx 与 src/components/user/login.tsx 查看。
- AI 应用
- 提示工程
- 人工智能
- 前端
【免费下载链接】ChatGPT-Shortcut
Stop writing prompts from scratch — a searchable prompt library for ChatGPT, Claude, Gemini and Cursor · Русский 한국어 العربية हिन्दी ไทย | 别再从头写提示词:现成的拿来就用,好用的收进自己的库
相关推荐
Chat UI 本地运行与部署全指南:从零配置 OpenAI 兼容端点到生产环境
Chat UI 本地运行与部署全指南:从零配置 OpenAI 兼容端点到生产环境 本指南以 docs/source/installation/local.md
AI 应用提示工程人工智能前端ChatGPT-Shortcut 账号体系实战指南:Google 一键登录、免密登录、密码重置与个人数据管理
ChatGPT Shortcut 账号体系实战指南:Google 一键登录、免密登录、密码重置与个人数据管理 导读 AiShort(ChatGPT Shortc
AI 应用提示工程人工智能前端ChatGPT-Shortcut(AiShort)账户体系详解:Google 登录、免密链接登录与账户数据管理的源码级实现
ChatGPT Shortcut(AiShort)账户体系详解:Google 登录、免密链接登录与账户数据管理的源码级实现 ChatGPT Shortcut(A
AI 应用提示工程人工智能前端
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考