2026-08-11 權限與同意平台更新 開發人員

上次更新:2026年8月15日

2026-08-11 權限與同意平台更新

更新日期:2026 年 8 月 11 日

通行帳戶與開發者入口網站已上線本輪「權限與同意」能力調整。本文說明更新了什麼、棄用了什麼、相容什麼,以及你需要做什麼。

相容提示

  • 已上線的舊用戶端無需因本次更新而改程式碼或重新發布。
  • 新接入或新開發的用戶端請以最新開發者文件為準。

摘要

  • 可在開發者入口網站增加或減少識別碼權限(不必因改權限重建用戶端)。
  • 將權限設為強制(必選)時,須填寫對使用者可見的理由,並設定隱私權政策連結
  • 使用者每次登入均須在授權頁明確確認;不再因「此前已授權相同權限」而靜默略過。
  • 權限有增減時,使用者會清楚看到新增 / 不再申請 / 仍保留,並對新增選用權限作出選擇。
  • 舊應用程式即使改不了登入程式碼,也能在入口網站改權限後讓使用者完成重新確認(見下文「舊應用程式如何相容」)。

詳細行為見同目錄上級的《權限與同意》《註冊與設定》。

更新了什麼

開發者入口網站

  • 編輯識別碼精靈包含「功能」步,可調整必選 / 選用 scope
  • email 與資料細項(如 namepreferred_usernamepicture 等)均可設為:不申請 / 選用 / 必選
  • 設為必選時須填寫向使用者說明的理由(展示在授權頁對應權限旁)。
  • 存在除 openid 外的強制權限時,隱私權政策連結必填
  • API:建立 / 更新用戶端可提交 requiredScopesoptionalScopesscopeReasonsprivacyPolicyUri;更新會持久化權限變更。

使用者授權頁

  • 每次登入進入授權 / 確認頁(不再靜默復用同意)。
  • 權限相對該使用者未變:展示「確認登入」與已授權摘要。
  • 權限有增減:展示「權限已變更」,分區列出新增必要 / 新增選用(含理由)、不再申請、仍保留的授權;確認後收縮已移除權限。
  • 首次授權:按必要 / 選用分區;強制項旁顯示開發者填寫的理由。

文件

  • 《權限與同意》《註冊與設定》《接入概述》及 Python 範例等已同步上述行為。
  • 新用戶端接入說明以這些最新文件為準。

舊應用程式如何相容(白話說明)

OAuth 登入時,應用程式會開啟通行帳戶,並在位址裡帶上本次要申請的權限,例如:

scope=openid email

這串文字寫在你的應用程式程式碼裡。有些已經上線的應用程式短期內改不了這串文字(發版週期長、無人維護等)。

問題會出在哪

若你後來在開發者入口網站把「使用者名稱」設成必選,但舊應用程式仍只傳 openid email

  • 按原始協定,授權頁和權杖都只會處理請求裡寫出的權限;
  • 使用者看不到「使用者名稱」,權杖裡也不會有「使用者名稱」;
  • 等於入口網站改了,舊應用程式卻拿不到。

伺服器端做了什麼

通行帳戶在處理登入請求時,會自動補全入口網站裡登記的權限,舊應用程式不用改程式碼:

  1. 全部必選都會併進來
    入口網站標成必選的權限(例如新加强制的「使用者名稱」),即使用戶應用程式位址裡沒寫,也會出現在本次授權裡,使用者必須確認。

  2. 已登入使用者還會看到「新增的選用」
    若你在入口網站新增了選用權限(例如「大頭貼」),而該使用者以前沒授權過這項,下次登入確認頁會列出它,供使用者勾選或取消。
    使用者以前已經授權過的選用,不會再當成「新增」刷一遍。

  3. 還沒登入時
    先保證必選併入;使用者登入完成回到授權流程後,再補上新增選用。

舉例

入口網站目前設定舊應用程式仍請求使用者實際會在授權頁看到
必選:openidemail使用者名稱;選用:大頭貼(新加)openid email必選含使用者名稱;若尚未授權過大頭貼,還會出現選用大頭貼
同上,使用者以前已授權過大頭貼openid email必選含使用者名稱;大頭貼出現在「仍保留」,不再當作新增

結論:舊應用程式可以暫時不改程式碼;你在入口網站改權限後,使用者下次登入仍能完成確認。新應用程式仍建議在請求裡寫清所需 scope,並與入口網站登記一致。

棄用了什麼

下列行為或約定不再作為產品保證,請勿在新開發中依賴:

已棄用說明
靜默略過授權頁同一帳號已向同一用戶端授予全部請求權限時,伺服器端不再略過同意 / 確認頁直接發碼
依賴省略 prompt=consent 實作「無確認登入」正式環境即使不傳送 prompt=consent,使用者仍須每次在授權頁確認;該參數仍可傳送,但不再是強制展示確認頁的必要條件
「資料細項只能選用、不可強制」資料細項在提供理由與隱私權政策後可以設為必選
「改權限須刪除並重建識別碼」可在入口網站編輯權限;用戶端類型(機密 / 非機密)仍不可互轉

未棄用:profile / 歷史 name 的展開相容、PKCE 強制、pairwise sub 等既有協定行為。

相容什麼

  • 已上線舊用戶端:無需修改登入請求、無需改 prompt、無需重新發版;入口網站改權限與強制確認頁由通行帳戶側處理(見上文「舊應用程式如何相容」)。
  • 舊 scope 寫法:仍可傳 profile 或歷史 name,伺服器端展開為細項(見《權限與同意》)。
  • 識別碼身分client_id / 金鑰與用戶端類型不因本次更新而失效;類型仍不可互轉。
  • 權杖與 UserInfo:未授權欄位仍為預設佔位值;請以權杖回應中的 scope 為準解釋聲明。

建議你做什麼

  1. 維護中的舊應用程式:可暫不改程式碼;若在入口網站增減權限或新增强制項,請補全理由與隱私權政策,並預期使用者下次登入會看到確認或變更對照。
  2. 新接入 / 新開發:按最新《註冊與設定》《權限與同意》設定 scope;登入 UX 按「每次會出現授權確認頁」設計;不要假設靜默授權。
  3. 需要強制索取某權限時:寫清對使用者可見的用途說明,並提供可開啟的隱私權政策連結。

相關連結