tinyship-auth について
Better Authを基盤とする、TinyShipの認証プロバイダー設定スキルです。メールとパスワード、GoogleやGitHubのOAuth、WeChat、SMS OTPに加え、各フロントエンドのログインボタン設定を扱います。
主な機能
- 01メールとパスワードの設定
- 02Google OAuthの設定
- 03GitHub OAuthの設定
- 04WeChatログインの設定
- 05SMS 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 App |
| WeChat ログイン | 複雑 | WeChat Open Platform + 営業許可証 |
| SMS OTP | 複雑 | Twilio または Aliyun SMS アカウント |
設定したい方法をユーザーに確認してから、該当するセクションに従ってください。
メールアドレス/パスワード(デフォルト)
基本的なセットアップ後、そのまま利用できます。メールアドレスの認証とパスワードリセットメールを有効にするには、 メールプロバイダーを設定します。
- 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 同意画面を設定します
- リダイレクト URI を
{APP_BASE_URL}/api/auth/callback/googleに設定して、OAuth 2.0 認証情報を作成します .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"
WeChat ログイン
詳しい設定手順については、references/wechat-login.md をお読みください。
概要:
- WeChat Open Platform に登録します(営業許可証が必要です)
- ウェブアプリケーションを作成します
.envに追加します。
NEXT_PUBLIC_WECHAT_APP_ID="wx_xxxxx"
VITE_WECHAT_APP_ID="wx_xxxxx"
WECHAT_APP_SECRET="xxxxx"
SMS OTP ログイン
詳しい設定手順については、references/sms-login.md をお読みください。
概要(Twilio):
- Twilio アカウントを作成し、認証情報を取得します
.envに追加します。
TWILIO_ACCOUNT_SID="ACxxxxx"
TWILIO_AUTH_TOKEN="xxxxx"
TWILIO_DEFAULT_FROM="+1234567890"
概要(Aliyun):
- Aliyun SMS サービスを有効にし、署名とテンプレートを作成します
.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 のソーシャル認証ボタン