コンテンツへスキップ
supastack
ドキュメントを閲覧
WebNext.js

For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /ja/docs/web/google-sign-in.md (or send Accept: text/markdown).

Google サインインを追加

無料の Google Cloud OAuth クライアントを作成し、「Google で続行」をアプリに組み込みます。

このガイドについて質問
開くアプリ

初心者向けのウォークスルー

前提条件:ローカルで動作する Web アプリ(5 分で公開)と、実アカウント用の移行済みデータベース(データベースのセットアップ)。通常の Google アカウントが必要です。ここでのすべては無料で、約 10 分かかります。

用語メモ:OAuth は、Google が Google のページでユーザーをサインインさせ、アプリに証明を渡す標準規格です。Google Cloud プロジェクトは、アプリの認証情報を保持する Google コンソール内のコンテナです。OAuth 同意画面(OAuth consent screen)は、Google がユーザーを戻す前に表示するページです。クライアント ID はアプリを Google に識別させるもので、クライアントシークレットはそのパスワードであり、サーバーにのみ保持します。

1. Google Cloud プロジェクトを作成します。2. 同意画面を構成します。3. Web OAuth クライアントを 1 つ作成し、その ID とシークレットをコピーします。4. 3 つの値を apps/web/.env.local に貼り付け、開発サーバーを再起動します。

プロジェクトは製品全体で 1 つで十分です。同じ Google Cloud プロジェクトが後で Cloud Run デプロイをホストし、モバイルサインインも同じ Web バックエンドを経由します——プラットフォームや機能ごとに個別のクライアントを作成する必要はありません。

Google Cloud プロジェクトを作成する

1. console.cloud.google.com を開き、Google アカウントでサインインします。

2. 上部バー(Google Cloud ロゴの隣)のプロジェクトドロップダウンをクリックし、New Project(新しいプロジェクト)を選択します。

3. 名前を付けて——製品名で構いません——Create(作成)をクリックします。サインイン認証情報に組織、カード、請求アカウントは不要です。

期待される結果:コンソールが新しいプロジェクトにリロードされ、その名前が上部バーに表示されます。デプロイガイドに進んだときは、別のプロジェクトを作成せずにこのプロジェクトを再利用してください。

OAuth クライアントを作成する

1. APIs & Services → Credentials → + Create Credentials → OAuth client ID(API とサービス → 認証情報 → + 認証情報を作成 → OAuth クライアント ID)を開きます。

2. Application type(アプリケーションタイプ)を Web application(Web アプリケーション)に設定し、supastack local のような名前を付けます。

3. Authorized JavaScript origins(承認済み JavaScript 生成元)に http://localhost:3000 を追加します。Authorized redirect URIs(承認済みリダイレクト URI)に http://localhost:3000/api/auth/callback/google を追加します——このコールバックパスはキットのデフォルト認証エンジンである Better Auth のものです:{APP_URL}/api/auth/callback/google。

4. Create(作成)をクリックし、ダイアログから Client ID(クライアント ID)と Client Secret(クライアントシークレット)をコピーします。後でクライアントのページで再度開くこともできますが、今コピーしておくと手間が省けます。

本番用には 2 つ目の Web クライアントを作成するか(推奨)、このクライアントに追加します:JavaScript 生成元 https://yourdomain.com、リダイレクト URI https://yourdomain.com/api/auth/callback/google。環境ごとにクライアントを分けておけば、ローカルのシークレットが漏洩しても本番には届きません。

値をアプリに追加する

apps/web/.env.local を開きます——Next.js が読み込むのはルートの .env ではなくこのファイルです——そして以下の 3 行を設定します。AUTH_GOOGLE_ENABLED=true がボタンを有効にし、クライアントのペアが Google Cloud クライアントを識別します。

クライアントシークレットはサーバー専用です。NEXT_PUBLIC_ や EXPO_PUBLIC_ 変数に決して含めず、Git にコミットもしないでください。本番では、env ファイルではなくホストのシークレットストアに同じ 3 つの名前を設定します。

編集後は開発サーバーを再起動してください——環境の変更は起動時にのみ読み込まれます。

# apps/web/.env.local
AUTH_GOOGLE_ENABLED=true
GOOGLE_CLIENT_ID=your-client-id.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=your-client-secret

確認とトラブルシューティング

http://localhost:3000/auth を開き、Google ボタンをクリックし、Google の同意画面を完了し、アプリがサインイン状態で戻ってくることを確認します。

redirect_uri_mismatch は Google に登録したリダイレクト URI が正確に一致していないことを意味します——プロトコル(http と https)、ポート、パスを確認してください。末尾は /api/auth/callback/google でなければならず、/callback/google/ や末尾スラッシュのバリエーションではありません。

Access blocked / has not completed the Google verification process(アクセスがブロックされました / Google の検証プロセスが完了していません)は、同意画面がまだ Testing で、サインインしようとしているアカウントが Test users にリストされていないことを意味します——Audience セクションで追加してください。

Google ボタンが表示されない場合、または .env.local 編集後もサインインが失敗する場合は、開発サーバーを再起動してください。起動時に変数名を挙げて失敗する場合は、完全なクライアントペアなしでフラグだけが有効になっています。

設定を続けるには、GitHub サインインを追加をご覧ください。

よくある質問

14 件の質問

supastack とは何ですか?

supastack は AI SaaS 製品を構築するためのモジュラー基盤です。共通インフラをまとめて提供するので、製品固有の機能に集中できます。

Web とモバイルに対応していますか?

はい。supastack には Web とモバイル体験の出発点として Next.js アプリと Expo アプリが含まれています。

どの認証が含まれていますか?

Better Auth がメール/パスワード、OTP、ソーシャルログインをカバーします。個人ワークスペースはアカウントと一緒にプロビジョニングされ、初日からレコードが境界内に収まります。

AI はどうサポートされていますか?

supastack には設定可能なマルチプロバイダー AI、使用量追跡、予算、暗号化された自前キー(BYOK)サポートが含まれています。

サブスクリプションはどう管理されますか?

このキット上に構築された製品では、Stripe 課金・サブスクリプション・権限が有料アクセスの基盤になります。プロバイダーの秘密はサーバー側に留まります。

製品固有のコードはどこに置きますか?

製品固有の機能は別のコードベースに置き、製品側が supastack の基本モジュールを設定・統合します。

supastack の価格は?

キットは生涯アップデート付きの一回払いです:単一フレームワーク 249 ドル(期間限定のローンチ価格 — 通常価格 349 ドルから 100 ドル割引)、または全フレームワーク(Next.js・iOS・Android)499 ドル(期間限定のローンチ価格 — 通常価格 599 ドルから 100 ドル割引)、追加開発者シート 1 席 75 ドル。キットのサブスクリプションはありません。このサイトのチェックアウトはライセンスキーをメールで配信し、GitHub 招待でリポジトリアクセスを提供します。

ワークスペースはどうデータを囲いますか?

ユーザーレコードは workspaceId でスコープされます。認証、権限、AI 使用量、課金イベント、監査エントリは個人ワークスペースの境界内に留まります。

バックグラウンドジョブはどう機能しますか?

Trigger.dev が明示的なジョブランタイムです。JobRunner コントラクトは enqueue・status・cancel のみを約束し、ワークフロー意味論は Trigger.dev 固有で明示的です。

メールとアウトリーチの違いは?

トランザクションメールはタスク完了通知などの製品ワークフローをカバーします。コールドアウトリーチやキャンペーンは製品自身に属し、このキットのメールモジュールの外です。

モバイルの購入はどのように機能しますか?

モバイルでは RevenueCat によるネイティブ購入と復元に対応し、アクセス権をサーバーで検証します。公開前にストアアカウントを設定し、実機テストを完了してください。Web 課金は別に管理します。

AI プロバイダーのキーはどこにありますか?

BYOK 認証情報は暗号化され、サーバー側に留まります。キーはログでサニタイズされ、使用量と予算はワークスペースレベルで可視です。

チェックアウトで使える支払い方法は?

Stripe ホストのチェックアウトはカードを受け付け、Stripe アカウントでウォレットを有効にすれば Alipay と WeChat Pay も提供できます——中国の購入者に便利です。ウォレット認可は非同期で確定するため、決済完了と同時にライセンスページが更新されます。

返金を受けることはできますか?

リポジトリへのアクセス権を取得した後は、supastack は永久にあなたのものとなるため、返金はできません。ですがご安心ください。生涯アップデートを含む完全なソースコードを入手し、ご自身やクライアントのために無制限にプロダクトを構築・公開できます。コードの転売や、リポジトリをスターターキットやテンプレートとして再配布することのみ禁止されています。

JA
テーマ