
AI 应用提示工程人工智能前端【免费下载链接】ChatGPT-ShortcutStop writing prompts from scratch — a searchable prompt library for ChatGPT, Claude, Gemini and Cursor · Русский 한국어 العربية हिन्दी ไทย 别再从头写提示词现成的拿来就用好用的收进自己的库项目地址https://gitcode.com/gh_mirrors/ch/ChatGPT-Shortcut点击查看免费下载导读AiShortChatGPT-Shortcut本身无需注册即可浏览全部提示词但登录后才能真正发挥它的价值收藏喜欢的提示词、创建属于自己的提示词、分享到社区并跨设备同步。本文基于项目官方文档 账号管理阿拉伯语版 与 英文版结合仓库前端源码系统讲解 AiShort 的三种登录方式、注册流程、账号信息维护用户名/密码/等级以及我的账号数据管理清缓存/导出/导入的完整操作与底层实现原理。读完本文你将能独立完成从注册登录到数据备份的全部账号管理操作并理解其认证链路的实现细节。登录方式总览AiShort 的登录对话框实现于 src/components/user/login.tsx通过Segmented分段控件提供两个 Tab密码登录与免密登录同时在下方提供Google 一键登录按钮。三种方式最终都通过 src/api/auth.ts 中封装的认证接口与后端交互登录成功后统一将 JWT 写入localStorage的auth_token键并向浏览器扩展发送window.postMessage({ action: login, ... })消息实现联动。密码登录使用注册时填写的用户名或邮箱配合密码登录。登录表单对应src/api/auth.ts中的login()函数export async function login(values: { username: string; password: string }) { const response await apiClient.post(/auth/local, { identifier: values.username, // 用户名或邮箱均可 password: values.password, }); clearUserCachesOnLogin(); // 清除旧账号的 USER_PROFILE 与 MySpace 缓存 return response; }从源码可以看到接口字段是identifier统一接收用户名或邮箱与password。登录成功后还会调用clearUserCachesOnLogin()定义见 src/api/auth.ts清空旧账号残留的用户资料缓存与 MySpace 缓存——这是为了避免旧账号残留 ETag 与新账号巧合命中导致数据泄漏而做的安全处理。免密登录Passwordless免密登录适合偶尔登录的用户不需要记住任何密码切换到免密登录Tab输入注册邮箱点击获取登录链接——系统向邮箱发送一条登录链接打开邮件中的链接点击即可完成登录。前端实现中输入框同时接受邮箱或用户名两种格式handleSendPasswordlessLink会用正则/\\S\\S\\.\\S/判断输入是否为邮箱格式是则提交{ email: target }否则提交{ username: target }然后调用sendPasswordlessLink()请求/passwordless/send-link接口邮件链接携带的 token 最终由loginWithToken()通过/passwordless/login?loginToken...完成兑换并持久化 JWT。文档明确说明免密登录无需记忆任何凭据适合不常登录的场景。Google 一键登录点击登录对话框中的 Google 按钮即可一键登录。首次登录时会自动为你创建账号无需单独注册步骤登录链路与常规注册/密码登录完全独立。其实现相当完整见 src/components/user/login.tsx前端先通过window.open打开一个 570×520 的独立登录弹窗并用 DOM 构建一个轻量加载页避免使用已废弃的Document.write()调用getGoogleAuthUrl()见 src/api/auth.ts获取 Google 认证 URL弹窗跳转到 Google 授权页回调结果通过window.postMessage送回主页面主页面监听message事件仅接受provider google或携带 JWT/access_token/id_token/code 的载荷调用googleLogin()完成认证并写入 JWT。在认证 URL 的生成上仓库通过 src/api/config.ts 中的USE_LEGACY_GAUTH开关区分两套流程USE_LEGACY_GAUTH true旧版调用/strapi-google-auth/init获取 URL随后用code换 token、再取用户信息USE_LEGACY_GAUTH false新版默认直接拼接/api/connect/google?redirect前端回调地址回调后直接解析返回的 JWT 与用户数据必要时再通过/api/users/me补全用户信息。注册账号登录对话框底部点击立即注册切换到注册表单流程如下点击立即注册进入注册视图填写邮箱、用户名、密码并勾选同意隐私政策与服务条款提交后自动登录无需再走一次登录流程。从 src/components/user/login.tsx 的注册表单renderRegisterForm可以看到几个关键细节密码校验规则至少 6 个字符min: 6邮箱格式校验type: email必须为合法邮箱格式协议勾选agreement字段为必选项未勾选时会提示使用前须同意服务条款和隐私政策对应文档链接指向 服务条款 与 隐私政策提交逻辑onFinishRegister调用register()见 src/api/auth.ts向/auth/local/register提交{ username, email, password }成功后由handleSuccess写入 JWT 并刷新页面。我的账号登录后通过页面的我的账号入口对应 src/pages/user/index.tsx可以管理个人资料、密码、等级与数据。该页面由AuthContext见 src/components/AuthContext.tsx提供用户态应用启动时读取localStorage中的auth_token并本地校验 JWT 的exp带 60 秒时钟偏差兜底随后通过getMySpace()拉取账号数据采用Stale-While-Revalidate策略——先用缓存立即渲染、后台静默刷新避免刷新页面时的骨架屏闪烁。修改用户名在我的账号页面点击用户名旁边的编辑图标输入新用户名后保存即可。修改密码与找回密码修改密码的步骤输入当前密码输入新密码并确认两次需一致点击更改密码提交。对应后端接口为/auth/change-password见 src/api/auth.ts提交字段为password新密码、currentPassword当前密码与passwordConfirmation确认密码。前端表单校验要求新密码至少 6 位且新密码与确认新密码必须一致src/components/user/login.tsx中的rules.confirm自定义 validator。忘记密码的完整恢复链路在登录对话框点击忘记密码输入注册邮箱点击发送重置邮件——对应forgotPassword()请求/auth/forgot-password邮件中包含一个带code参数的重置链接点击后进入 src/pages/reset-password.tsx 重置密码页该页面会从 URL 查询参数中自动读取code并预填重置代码输入框填写新密码与确认密码后提交resetPassword()向/auth/reset-password提交{ code, password, passwordConfirmation }成功后显示提示并在 1.5 秒后携带当前语言前缀重定向回首页window.location.href localePrefix /。我的等级L0–L9账号页面会展示你的**等级L0–L9**以及距下一级的进度。等级的判定依据是你在社区分享的提示词数量。等级体系的完整实现见 src/components/LevelSystem.tsx其中定义了 10 级阈值曲线等级名称达到所需社区分享数L0萌新探索者0初始L1青铜≥ 1L2白银≥ 3L3黄金≥ 8L4铂金≥ 18L5钻石≥ 35L6蓝宝石≥ 60L7红宝石≥ 100L8翡翠≥ 160L9星辉≥ 260对应源码常量为LEVEL_THRESHOLDS [0, 1, 3, 8, 18, 35, 60, 100, 160, 260]src/components/LevelSystem.tsx各级跨距约 1.6–2 倍平滑递增。等级还配有随级数累积的几何图标LevelIconL0 三角形 → L5 八边形嵌套 → L6 双嵌套 → L7 中心点 → L8 粗描边 → L9 星辉射线以及各自独立的语义化宝石配色。该文档同时指出L9260 次分享被定位为传奇层级。数据管理我的账号 → 数据管理提供三个操作清除缓存、导出提示词、导入提示词。清除缓存当数据不同步或页面显示异常时点击清除缓存可强制刷新本地缓存数据。文档明确说明该操作不会丢失收藏与自定义提示词只是强制系统重新同步。从实现层面看见 src/api/myspace.tsgetMySpace()请求/myspace时携带标准If-None-Match头服务端返回304 Not Modified时直接续期缓存并复用缓存数据clearMySpaceCache()则同时删除CACHE_PREFIX.MYSPACE的缓存数据与 ETag强制下一次请求返回完整数据。这正对应清缓存 强制重新同步的语义。此外登录成功与强制刷新时也会自动触发清缓存见 src/api/auth.ts 与AuthContext的forceRefresh分支以规避跨账号的数据残留。导出提示词操作路径我的账号 → 数据管理 → 导出提示词点击导出数据按钮后系统生成 JSON 文件并自动下载。导出的内容完整覆盖账号侧的所有关键数据提示词的名称、内容、用法与备注分享状态公开/私有你的收藏列表、收藏排序与自定义标签。推荐定期导出以防数据丢失。关于自定义提示词的完整创建与管理可参考 自定义提示词阿拉伯语版 或 英文版。导入提示词操作路径我的账号 → 数据管理 → 导入提示词点击导入数据按钮并选择 JSON 文件即可。导入采用自动合并策略按标题去重已存在的同名提示词不会重复导入所有权隔离若 JSON 中某提示词的 ID 属于其他账号导入后会被自动置为私有保证每个成员的数据相互独立。因此它天然支持团队协作场景团队导出后手工筛选出要分享的提示词发送给成员各自导入——他人的提示词自动变为私有你的私有数据不会被他人覆盖。导入/导出的数据结构与我的空间数据模型favorites、userprompts、customTags、排序保持一致相关 API 定义见 src/api/myspace.ts。相关文档快速开始阿拉伯语版 —— 基础使用方式我的收藏阿拉伯语版 —— 收藏与标签管理自定义提示词阿拉伯语版 —— 创建与管理自有提示词服务条款 与 隐私政策 —— 注册时需同意的协议文本小结AiShort 的账号体系覆盖了从匿名浏览到全功能使用的完整路径密码登录面向常规用户免密登录面向低频用户Google 一键登录面向偏好第三方认证的用户注册即自动登录账号页支持修改用户名/密码、查看 L0–L9 等级进度数据管理提供清缓存、导出备份、导入恢复三大能力。结合 src/components/user/login.tsx、src/api/auth.ts、src/components/LevelSystem.tsx 等源码可以清晰看到每条操作背后的接口与安全设计JWT 本地校验、旧账号缓存清理、ETag 条件请求、导入所有权隔离无论是日常使用还是二次开发都能按图索骥。赞分享AI 应用提示工程人工智能前端【免费下载链接】ChatGPT-ShortcutStop writing prompts from scratch — a searchable prompt library for ChatGPT, Claude, Gemini and Cursor · Русский 한국어 العربية हिन्दी ไทย 别再从头写提示词现成的拿来就用好用的收进自己的库项目地址https://gitcode.com/gh_mirrors/ch/ChatGPT-Shortcut点击查看免费下载相关推荐ChatGPT-ShortcutAiShort账户体系详解Google 登录、免密链接登录与账户数据管理的源码级实现ChatGPT ShortcutAiShort账户体系详解Google 登录、免密链接登录与账户数据管理的源码级实现 ChatGPT ShortcutAAI 应用提示工程人工智能前端Meteor 用户与账户系统完全指南密码登录、无密码登录、2FA 与 OAuth 集成实战Meteor 用户与账户系统完全指南密码登录、无密码登录、2FA 与 OAuth 集成实战 导读 本文以 Meteor 官方教程 Users and Acc后端前端开发工具移动开发告别账号密码NocoDB OAuth2.0第三方登录实战指南告别账号密码NocoDB OAuth2.0第三方登录实战指南 你是否还在为团队成员频繁忘记数据库管理系统密码而烦恼是否希望用户能用社交平台账号一键登录Noc数据库低代码后端前端上一篇把供应链变成一张异构图用 PyTorch Geometric 预测运输成本到底能省多少钱下一篇JavaScript WinWheel旋转你的创意创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考