关于 tinyship-auth
基于 Better Auth 的 TinyShip 身份验证配置技能,涵盖邮箱密码、Google 和 GitHub OAuth、微信及短信 OTP,并介绍各前端的登录按钮配置。
主要功能
- 01邮箱和密码配置
- 02Google OAuth 配置
- 03GitHub OAuth 配置
- 04微信登录配置
- 05短信 OTP 配置
- 06前端登录按钮设置
适用场景
- 01启用邮箱验证和密码重置
- 02添加社交登录提供方
- 03设置手机号 OTP 登录
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ tinyshipcn/ tinyship-skills --skill tinyship-auth安装后在 Claude Code 中输入/tinyship-auth确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/github-oauth.mdgoogle-oauth.mdsms-login.mdwechat-login.md详细介绍
TinyShip 身份验证提供商配置
TinyShip 身份验证方法配置指南。基于 Better Auth 构建。
可用的身份验证方法
| 方法 | 难度 | 要求 |
|---|---|---|
| 电子邮件/密码 | 简单 | 完成设置后即可使用 |
| Google OAuth | 中等 | Google Cloud Console 项目 |
| GitHub OAuth | 中等 | GitHub OAuth 应用 |
| 微信登录 | 复杂 | 微信开放平台 + 营业执照 |
| 短信 OTP | 复杂 | Twilio 或阿里云短信账号 |
询问用户想配置哪些方法,然后按照相应章节操作。
电子邮件/密码(默认)
完成基本设置后即可正常使用。若要启用电子邮件验证和密码重置邮件, 请配置电子邮件服务提供商:
- 设置 Resend(最简单):从 resend.com 获取 API 密钥
- 添加到
.env:
RESEND_API_KEY="re_xxxxx"
EMAIL_DEFAULT_FROM="[email protected]"
详细的电子邮件身份验证配置请参阅 docs/user-guide/auth/email.md。
Google OAuth
详细设置步骤请参阅 references/google-oauth.md。
概要:
- 在 Google Cloud Console 中创建项目
- 配置 OAuth 同意屏幕
- 创建 OAuth 2.0 凭据,并设置重定向 URI:
{APP_BASE_URL}/api/auth/callback/google - 添加到
.env:
GOOGLE_CLIENT_ID="your-client-id.apps.googleusercontent.com"
GOOGLE_CLIENT_SECRET="GOCSPX-xxxxx"
GitHub OAuth
详细设置步骤请参阅 references/github-oauth.md。
概要:
- 前往 GitHub Settings > Developer settings > OAuth Apps > New
- 设置回调 URL:
{APP_BASE_URL}/api/auth/callback/github - 添加到
.env:
GITHUB_CLIENT_ID="Ov23xxxxxxxxxx"
GITHUB_CLIENT_SECRET="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
微信登录
详细设置步骤请参阅 references/wechat-login.md。
概要:
- 在微信开放平台注册(需要营业执照)
- 创建 Web 应用
- 添加到
.env:
NEXT_PUBLIC_WECHAT_APP_ID="wx_xxxxx"
VITE_WECHAT_APP_ID="wx_xxxxx"
WECHAT_APP_SECRET="xxxxx"
短信 OTP 登录
详细设置步骤请参阅 references/sms-login.md。
概要(Twilio):
- 创建 Twilio 账号并获取凭据
- 添加到
.env:
TWILIO_ACCOUNT_SID="ACxxxxx"
TWILIO_AUTH_TOKEN="xxxxx"
TWILIO_DEFAULT_FROM="+1234567890"
概要(阿里云):
- 启用阿里云短信服务,创建签名和模板
- 添加到
.env:
ALIYUN_ACCESS_KEY_ID="xxxxx"
ALIYUN_ACCESS_KEY_SECRET="xxxxx"
ALIYUN_SMS_SIGN_NAME="YourSign"
ALIYUN_SMS_TEMPLATE_CODE="SMS_000000000"
前端:配置登录按钮
添加提供商后,更新社交身份验证按钮以显示或隐藏相应选项:
Next.js:
编辑 apps/next-app/components/social-auth.tsx:
const defaultProviders: SocialProvider[] = ['google', 'github'];
// Add or remove: 'google', 'github', 'wechat', 'phone'
Nuxt.js:
编辑 apps/nuxt-app/components/SocialAuth.vue:
providers: () => ['google', 'github']
// Add or remove: 'google', 'github', 'wechat', 'phone'
TanStack Start:
编辑 apps/tanstack-app/src/components/social-auth.tsx(采用与 Next.js 相同的模式)。
验证
- 更改
.env后重启开发服务器 - 访问
/signin,检查已配置的提供商是否显示 - 测试每个提供商的登录流程
- 在
/admin/users管理面板中确认用户是否出现
TinyShip 仓库中的参考文件
config/auth.ts— 身份验证提供商配置libs/auth/AGENTS.md— 身份验证库架构docs/user-guide/auth/overview.md— 身份验证文档索引apps/next-app/components/social-auth.tsx— Next.js 社交身份验证按钮apps/tanstack-app/src/components/social-auth.tsx— TanStack Start 社交身份验证按钮apps/nuxt-app/components/SocialAuth.vue— Nuxt.js 社交身份验证按钮
评论
支持 Markdown