You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Flutter(Dart)中实现Azure AD B2C(自定义策略)的本地化功能

Flutter 集成 Azure AD B2C 本地化实现方案

aad_oauth 库本身没有直接暴露 ui_locales 参数的配置入口,你可以通过以下三种方式实现适配:

方案一:自定义请求参数注入

  • 找到 aad_oauth 库中构造授权URL的核心代码段,通常在 request_code.dart 或者 oauth.dart 文件内
  • 在构造查询参数的位置,新增 ui_locales 参数,值设置为你需要的目标语言代码(例如 zh-CN、en-US 等)
  • 示例修改代码:
final Map<String, String> queryParams = {
  'client_id': config.clientId,
  'response_type': 'code',
  'redirect_uri': config.redirectUri,
  'scope': config.scope,
  // 新增本地化参数
  'ui_locales': 'zh-CN', // 可以替换为动态获取的系统语言变量
  ...其他原有参数
};
  • 如果你不想直接修改源码,可以通过fork库的方式维护自定义版本,或者使用 dependency_overrides 指向本地修改后的库文件

方案二:使用B2C用户流自定义语言配置

如果不想改客户端代码,可以直接在Azure Portal的B2C配置端做兼容:

  • 进入你的B2C租户,找到对应的用户流(User Flow)
  • 打开「语言」配置页,启用你需要支持的所有语言
  • 开启「自定义页面内容」功能,将默认语言设置为你期望的默认展示语言
  • 当请求未携带 ui_locales 参数时,B2C会优先匹配用户浏览器/系统的语言偏好, fallback到你设置的默认语言

方案三:替换为支持参数自定义的OAuth库

如果改源码的方案不符合你的维护要求,可以换成 flutter_appauth 库,该库支持自定义授权请求参数,可直接传入 ui_locales:

final AuthorizationTokenRequest request = AuthorizationTokenRequest(
  clientId,
  redirectUrl,
  discoveryUrl: discoveryUrl,
  scopes: scopes,
  // 直接传入自定义参数
  additionalParameters: {'ui_locales': 'zh-CN'},
);

注意:所有方案都需要确保你在Azure AD B2C后台已经启用了对应语言的支持,否则传入 ui_locales 参数不会生效

内容的提问来源于stack exchange,提问作者Vigneshwaran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 09:06:08