組件世界 WidgetStore - Notion 小組件、動態圖示、個人起始頁與個人主頁

開發者接入「用組件世界登入」(OAuth 2.1 / OpenID Connect)

用標準的 OAuth 2.1 和 OpenID Connect 給你的應用加上「用組件世界登入」:建立應用、PKCE、用 JWKS 驗證 ES256 的 ID token,以及按使用者允許的範圍調用 API。

任何人都可以在 開發者控制臺 建立應用,讓使用者用組件世界帳號登入。已經登入組件世界的使用者只要點「允許」。能看到什麼由使用者決定,使用者也可以隨時在 賬戶中心 → 應用與 API 斷開你的應用。

1. 建立應用

在 /developers 點「新建應用」,填寫:

  • 名稱、圖示、主頁和隱私政策地址(必填)。使用者會在授權頁看到。
  • 回調地址,每行一個,必須完全一致:不支援通配符,多一個斜槓、換一個引數都不行。只能用 https;原生應用還可以用環回地址(http://127.0.0.1/...,端口不限)或自訂 scheme。
  • 應用類型:「服務端應用」有 client secret(只顯示一次,庫裡只存哈希);「瀏覽器 / 原生應用」沒有 secret。

免費版可以建立 3 個應用,Pro 10 個。新應用會顯示「未驗證」,稽核前最多 100 個使用者。

2. 跳轉授權

GET https://widgetstore.net/oauth/authorize
  ?response_type=code
  &client_id=wsc_...
  &redirect_uri=https://example.com/auth/callback
  &scope=openid profile email
  &state=<隨機>
  &nonce=<隨機>
  &code_challenge=<BASE64URL(SHA256(verifier))>
  &code_challenge_method=S256
  • 所有應用都必須用 PKCE(S256),服務端應用也一樣。
  • 回來時核對 state 沒變(防 CSRF),我們也會帶上 iss。
  • prompt=none 靜默檢查:使用者已登入且同意過就直接給 code,否則返回 login_required / consent_required;prompt=consent 一定顯示授權頁。

3. 換取令牌

POST https://widgetstore.net/widget/api/oauth/token
Content-Type: application/x-www-form-urlencoded
Authorization: Basic base64(client_id:client_secret)   # 只有服務端應用

grant_type=authorization_code&code=...&code_verifier=...&redirect_uri=...

返回 access_token(1 小時)、refresh_token(每次使用都會換新,舊的再用會作廢整個授權)和 id_token。code 只能用一次,10 分鐘過期。

4. 驗證 ID token

  • ES256 籤名,公鑰在 https://widgetstore.net/widget/api/oauth/jwks(按 kid 取)。
  • 核對 iss = https://widgetstore.net、aud = 你的 client ID、exp,以及 nonce 一致。
  • sub 只對你的應用唯一:同一個人在另一個應用裡是另一個 sub,應用之間無法關聯同一個人。
  • 聲明按使用者允許的範圍給:profile → name、picture;email → email、email_verified。

發現文件:https://widgetstore.net/.well-known/openid-configuration。使用者訊息:帶 access token 請求 GET https://widgetstore.net/widget/api/oauth/userinfo。

範圍

範圍能拿到
openid登入必選
profile暱稱和頭像
email已驗證的郵箱
read、write:*通過 開放 API 與 MCP 讀寫使用者的組件、主頁和資料

規則

  • 只要需要的範圍,使用者可以去掉 profile 和 email。
  • 不要向使用者索要組件世界的密碼或郵箱驗證碼。
  • 使用者在你的應用裡退出時撤銷令牌:POST https://widgetstore.net/widget/api/oauth/revoke。
  • 誤導使用者或濫用資料的應用會被停用:停用後不能再授權,也不能重新整理令牌。

最後更新:2026年11月14日