跳轉到內容
supastack
瀏覽檔案

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 /zh-tw/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 同意螢幕是 Google 在把使用者送回之前展示的頁面。Client ID 用於向 Google 標識你的應用;Client Secret 是它的密碼,只留在伺服器上。

1. 建立 Google Cloud 專案。2. 配置同意螢幕。3. 建立一個 Web OAuth 客戶端並複製其 ID 和 Secret。4. 把三個值貼上到 apps/web/.env.local 並重啟開發伺服器。

一個專案足以支撐整個產品:同一個 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。

2. 將 Application type 設為 Web application,並起一個類似 supastack local 的名字。

3. 在 Authorized JavaScript origins 下新增 http://localhost:3000。在 Authorized redirect URIs 下新增 http://localhost:3000/api/auth/callback/google——這個回撥路徑屬於套件預設的認證引擎 Better Auth:{APP_URL}/api/auth/callback/google。

4. 點選 Create,並從對話方塊中複製 Client ID 和 Client Secret。之後可以在客戶端頁面重新檢視,但現在複製能省一步。

生產環境再建立第二個 Web 客戶端(推薦),或在當前客戶端上補充:JavaScript origin https://yourdomain.com 和 redirect URI https://yourdomain.com/api/auth/callback/google。每個環境使用獨立客戶端意味著洩露的本地金鑰無法觸及生產環境。

把值新增到應用中

開啟 apps/web/.env.local——Next.js 讀取的是這個檔案,而不是根目錄的 .env——並設定下面三行。AUTH_GOOGLE_ENABLED=true 開啟按鈕;客戶端憑據對用於標識你的 Google Cloud 客戶端。

Client Secret 僅限服務端:它絕不能出現在 NEXT_PUBLIC_ 或 EXPO_PUBLIC_ 變數中,也絕不能提交到 Git。生產環境中,請在託管方的金鑰儲存中設定同樣的三個名稱,而不是放在 env 檔案裡。

編輯後重啟開發伺服器——環境變更只在啟動時讀取。

# 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 中註冊的 redirect URI 不完全匹配——檢查協議(http 還是 https)、埠和路徑:它必須以 /api/auth/callback/google 結尾,而不是 /callback/google/ 或帶尾部斜槓的變體。

Access blocked / has not completed the Google verification process 表示同意螢幕仍處於 Testing,而正在登入的賬戶未列入 Test users——在 Audience 部分中新增它。

如果 Google 按鈕缺失,或編輯 .env.local 後登入仍然失敗,請重啟開發伺服器。如果啟動失敗並報出某個變數名,說明開關已開啟但客戶端憑據對不完整。

常見問題

14 個問題

supastack 是什麼?

supastack 是用於構建 AI 驅動 SaaS 產品的模組化基礎。它把通用基礎設施整合在一起,讓你專注於產品專屬的功能。

它支援 Web 和移動端嗎?

支援。supastack 包含 Next.js 與 Expo 應用,作為 Web 與移動端體驗的起點。

包含哪些認證方式?

Better Auth 覆蓋郵箱/密碼、OTP 與社交登入。個人工作區隨賬戶一起開通,產品記錄從第一天起就有邊界。

AI 是如何支援的?

supastack 包含可配置的多供應商 AI、用量追蹤、預算,以及加密的自帶金鑰(BYOK)支援。

訂閱如何處理?

對於基於該套件構建的產品,Stripe 計費、訂閱與許可權構成付費訪問的基礎。供應商金鑰僅存於服務端。

我的產品專屬程式碼放在哪裡?

產品專屬功能保留在獨立的程式碼庫中,產品通過配置接入 supastack 的基礎模組。

supastack 如何定價?

套件為一次性購買、終身更新:單棧 249 美元(Next.js(Web)、Expo(iOS 與 Android)、Tauri(macOS 與 Windows 桌面)倉庫任選其一),雙棧 398 美元(任選兩個倉庫),或完整套裝 399 美元(全部三個倉庫與完整 monorepo),每個額外開發者席位 75 美元。套件本身沒有訂閱。本站結賬後通過郵件傳送許可證金鑰,倉庫訪問通過 GitHub 邀請授予。

工作區如何界定我的資料?

使用者記錄按 workspaceId 劃定邊界。身份、許可權、AI 用量、計費事件與審計條目都留在個人工作區邊界內。

後臺任務如何工作?

Trigger.dev 是明確的任務執行時。JobRunner 契約只承諾 enqueue、status 與 cancel——工作流語義保持 Trigger.dev 專有且顯式。

郵件與營銷觸達有何不同?

事務性郵件覆蓋產品工作流,如任務完成通知。冷觸達與營銷活動屬於產品自身的範疇,不在本套件的郵件模組內。

移動端購買如何運作?

移動端已支援 RevenueCat 原生購買和恢復購買,訪問許可權由服務端驗證。釋出前需配置商店賬戶並完成裝置測試。Web 計費保持獨立。

AI 供應商金鑰存放在哪裡?

自帶金鑰憑證經過加密且僅存於服務端。金鑰在日誌中被脫敏;用量與預算在工作區級別保持可見。

結賬支援哪些付款方式?

Stripe 託管結賬接受銀行卡,在 Stripe 賬戶啟用後還可提供支付寶與微信支付——方便中國買家。錢包授權為非同步確認,付款完成後許可證頁面會立即更新。

我能申請退款嗎?

獲得程式碼倉庫訪問許可權後,supastack 將永久歸你所有,因此無法退款。但請放心,你將獲得包含終身更新的完整原始碼,可為你自己或客戶構建併發布無限數量的產品。你只需注意不能轉賣程式碼,也不能將倉庫作為啟動模板二次分發。唯一的例外是上線返現——上線一款用 supastack 打造的真實產品並公開分享,在購買後 60 天內達到 5,000 次自然瀏覽或 50 個自然按讚,即可退還已付款項的 50%;詳見條款。

TW
主題