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

Azure AD B2C重定向URI报错:请求缺少client_id参数咨询

Flutter Azure AD B2C 身份验证缺少client_id问题解决建议
  • 替换占位符client_id
    代码里的'client_id'是占位符,必须换成Azure应用注册里的实际客户端ID(即Application (client) ID),这个ID在Azure门户应用注册的概述页面就能找到,直接复制粘贴过来。

  • 核对重定向URI一致性
    确保Flutter代码里的com.test.azure_test/oauth2_redirect和Azure应用注册中配置的重定向URI完全一致,包括大小写、前缀后缀。注意移动/桌面应用的重定向URI格式要对应你的Flutter应用包名,不能有任何差异。

  • 验证认证端点正确性
    检查授权和令牌端点里的租户名、策略名是否和Azure里的配置匹配。比如testOrg.onmicrosoft.com是你的租户域名,B2C_1_signupsignin是你的用户流/自定义策略名称,下划线、大小写都不能错,错一个字符都会导致参数缺失或端点无效。

  • 完善平台特定配置
    Android端要在AndroidManifest.xml里添加对应重定向URI的intent-filter,确保应用能捕获认证回调;iOS端需要在Info.plist中配置CFBundleURLTypes,把重定向URI加进去。同时确认flutter_appAuth用的是最新稳定版,避免版本兼容问题。

  • 忽略直接访问重定向URI的报错
    重定向URI是给认证服务回调用的,直接在浏览器打开必然会提示缺少参数,这是正常现象,不用管它,只要通过flutter_appAuth发起的认证流程能正常跳转就行。

修正后的示例代码:

onPressed: () async {
  FlutterAppAuth appAuth = const FlutterAppAuth();
  final AuthorizationTokenResponse? result = await appAuth.authorizeAndExchangeCode(
    AuthorizationTokenRequest(
      // 替换成Azure应用注册里的实际客户端ID
      'your-actual-client-id-here',
      'com.test.azure_test/oauth2_redirect',
      serviceConfiguration: const AuthorizationServiceConfiguration(
        authorizationEndpoint: 'https://testOrg.b2clogin.com/testOrg.onmicrosoft.com/B2C_1_signupsignin/oauth2/v2.0/authorize',
        tokenEndpoint: 'https://testOrg.b2clogin.com/testOrg.onmicrosoft.com/B2C_1_signupsignin/oauth2/v2.0/token'
      ),
      scopes: ['openid','offline_access','api'],
    ),
  );
  print(result);
},

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 23:55:30