2026-08-11权限与同意平台更新 开发人员

上次更新:2026年8月12日

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. 需要强制索取某权限时:写清对用户可见的用途说明,并提供可打开的隐私政策链接。

相关链接