mcpField
T
tinyship-auth

tinyship-auth

github.com/tinyshipcn开发576 次安装1 周前更新
代码仓库

关于 tinyship-auth

基于 Better Auth 的 TinyShip 身份验证配置技能,涵盖邮箱密码、Google 和 GitHub OAuth、微信及短信 OTP,并介绍各前端的登录按钮配置。

主要功能

  1. 01邮箱和密码配置
  2. 02Google OAuth 配置
  3. 03GitHub OAuth 配置
  4. 04微信登录配置
  5. 05短信 OTP 配置
  6. 06前端登录按钮设置

适用场景

  1. 01启用邮箱验证和密码重置
  2. 02添加社交登录提供方
  3. 03设置手机号 OTP 登录

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/tinyshipcn/tinyship-skills --skill tinyship-auth

安装后在 Claude Code 中输入/tinyship-auth确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
github-oauth.md
google-oauth.md
sms-login.md
wechat-login.md

详细介绍

TinyShip 身份验证提供商配置

TinyShip 身份验证方法配置指南。基于 Better Auth 构建。

可用的身份验证方法

方法难度要求
电子邮件/密码简单完成设置后即可使用
Google OAuth中等Google Cloud Console 项目
GitHub OAuth中等GitHub OAuth 应用
微信登录复杂微信开放平台 + 营业执照
短信 OTP复杂Twilio 或阿里云短信账号

询问用户想配置哪些方法,然后按照相应章节操作。

电子邮件/密码(默认)

完成基本设置后即可正常使用。若要启用电子邮件验证和密码重置邮件, 请配置电子邮件服务提供商:

  1. 设置 Resend(最简单):从 resend.com 获取 API 密钥
  2. 添加到 .env:
RESEND_API_KEY="re_xxxxx"
EMAIL_DEFAULT_FROM="[email protected]"

详细的电子邮件身份验证配置请参阅 docs/user-guide/auth/email.md。

Google OAuth

详细设置步骤请参阅 references/google-oauth.md。

概要:

  1. 在 Google Cloud Console 中创建项目
  2. 配置 OAuth 同意屏幕
  3. 创建 OAuth 2.0 凭据,并设置重定向 URI:{APP_BASE_URL}/api/auth/callback/google
  4. 添加到 .env:
GOOGLE_CLIENT_ID="your-client-id.apps.googleusercontent.com"
GOOGLE_CLIENT_SECRET="GOCSPX-xxxxx"

GitHub OAuth

详细设置步骤请参阅 references/github-oauth.md。

概要:

  1. 前往 GitHub Settings > Developer settings > OAuth Apps > New
  2. 设置回调 URL:{APP_BASE_URL}/api/auth/callback/github
  3. 添加到 .env:
GITHUB_CLIENT_ID="Ov23xxxxxxxxxx"
GITHUB_CLIENT_SECRET="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

微信登录

详细设置步骤请参阅 references/wechat-login.md。

概要:

  1. 在微信开放平台注册(需要营业执照)
  2. 创建 Web 应用
  3. 添加到 .env:
NEXT_PUBLIC_WECHAT_APP_ID="wx_xxxxx"
VITE_WECHAT_APP_ID="wx_xxxxx"
WECHAT_APP_SECRET="xxxxx"

短信 OTP 登录

详细设置步骤请参阅 references/sms-login.md。

概要(Twilio):

  1. 创建 Twilio 账号并获取凭据
  2. 添加到 .env:
TWILIO_ACCOUNT_SID="ACxxxxx"
TWILIO_AUTH_TOKEN="xxxxx"
TWILIO_DEFAULT_FROM="+1234567890"

概要(阿里云):

  1. 启用阿里云短信服务,创建签名和模板
  2. 添加到 .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 相同的模式)。

验证

  1. 更改 .env 后重启开发服务器
  2. 访问 /signin,检查已配置的提供商是否显示
  3. 测试每个提供商的登录流程
  4. 在 /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