OAuth App Homepage / brand disclosure

AllenChang's Creative

AllenChang's Creative 是 Allen Chang 開發與發行之應用程式的共用開發者品牌與 Google OAuth 授權身分。旗下目前公開產品為 Dwello 寓、1214 / Play Test Co-op 與 EPUB Tools,其中 Dwello 與 1214 已驗證請求 Google OAuth 授權;EPUB Tools 目前沒有要求 Google OAuth 授權。

同意畫面上的應用程式名稱與開發者品牌統一為 AllenChang's Creative;旗下產品各自擁有獨立的 OAuth Web Client,但都隸屬同一個 Google Cloud Project。

01 / Brand identity

這個名稱,就是同意畫面上的名稱。

AllenChang's Creative 是出現在 Google OAuth 同意畫面上的應用程式名稱與開發者品牌名稱;旗下產品的 OAuth 申請都以此名稱提交。

OAuth 同意畫面上的應用程式名稱
AllenChang's Creative
OAuth 同意畫面上的開發者品牌
AllenChang's Creative
Google Cloud Project
單一共用 Google Cloud Project,下轄 Dwello 與 1214 兩個 OAuth Web Client;旗下產品各自擁有獨立的 OAuth Web Client 與 Authorized JavaScript Origin / Redirect URI。
目前公開的母品牌 Privacy Policy
/privacy/,與 /terms/ 共同作為 OAuth 同意畫面的公開資料說明

02 / Applications under the brand

共用一個開發者品牌,三個各自獨立的產品。

同一個 AllenChang's Creative 對應出三個獨立產品;OAuth 同意畫面上的應用程式名稱不變,但每個產品是否實際要求使用者授權,由各自的程式碼證據決定。

03 / Requested scopes by product

每個產品的範圍各自精確列出。

以下範圍都來自各自產品的 tracked source;不同產品的範圍不得互相延伸,沒有使用的範圍不會被列出。

Dwello 寓

由前端 google.accounts.oauth2.initTokenClient 一次性請求四個範圍。

範圍(OAuth scope) 用途 實際資料行為
openid 身份層級 取得 Google 簽署的 ID token,用於驗證目前登入者為 Google 帳號本人;Dwello 後端驗證 sub、iat 與 exp 等標準宣告。
email 已驗證電子郵件 取得使用者的 email 與 email_verified 宣告;Dwello 後端要求 email_verified 為 true 才會建立或更新使用者資料。
profile 顯示名稱與頭像 取得使用者 Google 帳號的 name 與 picture 宣告,僅作為產品介面中的顯示名稱與頭像使用,不做為外部行銷或分析。
https://www.googleapis.com/auth/drive.file 受限制的雲端硬碟權限 只允許 Dwello 在使用者的 Google Drive 建立與管理 Dwello 自己產生的資料夾與檔案;不可列舉、讀取或修改其他檔案。

Dwello 後端不會額外向 Google 要求 Drive 範圍;drive.file 僅用於瀏覽器直接送往使用者自己 Google Drive 的照片流程。

1214 / Play Test Co-op

由 Cloudflare Worker 在 /api/auth/google 端點產生 Google OAuth authorization-code 流程,僅請求以下三個範圍。

範圍(OAuth scope) 用途 實際資料行為
openid 身份層級 取得 Google 簽署的 ID token;Worker 後端以 jose 驗證 RS256 簽章並比對 issuer 與 audience,確認目前登入者為 Google 帳號本人。
email 已驗證電子郵件 從 ID token 取得 email;D1 `users.google_id` 為 UNIQUE,後端以 Google `sub` 作為穩定識別鍵。
profile 顯示名稱與頭像 從 ID token 取得 display_name 與 picture,作為 1214 介面中的顯示名稱與頭像;不作為對外行銷或分析。

1214 不請求 Drive、Photos、Calendar、Gmail、People API 或其他敏感範圍;CSP 也不白名單任何 googleapis.com 端點。

04 / drive.file boundary (Dwello only)

drive.file 不等於「整個雲端硬碟」。

在 Dwello 已驗證的範圍裡,drive.file 是受限範圍;它不會讓應用程式讀取、列舉或修改使用者 Google Drive 中的其他檔案。1214 不請求 Drive 範圍,因此這段只描述 Dwello。

簡單地說:drive.file 只允許 Dwello 看到「Dwello 自己在你 Drive 寫過的東西」,不允許看到、修改或刪除其他檔案。

05 / Token and session handling

token 在記憶體;session 是第一方;資料庫只存雜湊。

Dwello 與 1214 各自以不同方式保留 OAuth 與登入狀態;共通原則是明文 token 不落地、session 可被撤銷、撤銷與刪除流程由使用者或管理員啟動。

Dwello · Google Drive access token
只存在目前頁面的 JavaScript 模組變數;不寫入 localStorage、sessionStorage、IndexedDB、URL 或 log;登出時清除。
Dwello · Session
第一方 HttpOnly cookie;正式環境同時帶 Secure 與 SameSite=Lax;瀏覽器腳本無法讀取。
Dwello · 資料庫裡的 session
只保存 session token 的 SHA-256 雜湊與到期時間;撤銷以設定 revoked_at 為準,cookie 同時過期。
Dwello · 保留期限
絕對期限為七日,閒置逾三十分鐘視為過期;登出立刻撤銷。可透過 Google 帳號設定或 Dwello 站內登出撤銷授權。
1214 · ID token 與 Refresh token
Worker 透過 jose 驗證 Google 簽發的 ID token(含 RS256 簽章、issuer、audience 驗證);不請求 refresh token、不儲存任何 Google access token 或 refresh token。
1214 · Session
HS256 JWT,payload 僅含 user_id,到期七日;KV 中以 sessions:{token}=userId 保存(TTL 604800);第一方 HttpOnly cookie session 帶 SameSite=Lax。
1214 · 保留期限與刪除
Session 7 天;管理員通過 /admin/requests/:id/process 申請可匿名化 google_id、email、display_name、avatar_url、role 並撤銷全部 session。

06 / User controls

使用者保留對授權、分享與檔案的主控權。

無論是 Dwello 的 Drive 照片或 1214 的測試協作帳號,使用者都可在 Google 帳號端與產品內調整授權與資料。

07 / OAuth application status by product

目前要求 Google OAuth 授權的產品。

每個列出的產品都附上來源程式碼位置、實際 scope,以及對應的政策入口。

目前未要求 Google OAuth 授權的產品

08 / Policies and entry points

對外公開的政策與產品入口。

以下連結是 AllenChang's Creative 對外公開、可被搜尋與驗證的政策頁與產品入口;目前共六個政策頁,本頁是品牌 OAuth 揭露頁,不屬於政策頁。

1214 與 EPUB Tools 在當前可驗證的來源中沒有請求 Drive 範圍;Dwello 是目前唯一被授權存取使用者 Drive 中「Dwello 自己建立」的資料夾與檔案之產品。EPUB Tools 列為「目前未要求 Google OAuth 授權」的產品,僅在指南頁使用 Google AdSense 廣告(與 OAuth 無關)。