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

Flutter应用集成Firebase Microsoft登录时遇invalid-credential错误

错误原因分析

错误信息里的AADSTS90023明确指向核心问题:Flutter移动端属于公共客户端,微软不允许这类客户端发送客户端密钥。问题根源在Azure Active Directory(AAD)的应用注册配置,或是Firebase控制台的Microsoft登录设置中,错误启用了客户端密钥的传递,触发了微软的安全限制。

解决步骤

1. 修正Azure AD应用注册配置

  • 登录Azure门户,找到你的Microsoft应用注册
  • 进入「认证」页面,在「平台配置」中添加对应移动端平台(iOS/Android),确保应用类型设置为公共客户端(而非机密客户端)
  • 核对重定向URI:移动端的重定向URI需与Firebase控制台中Microsoft登录设置里的URI一致(Firebase会自动生成对应平台的URI)

2. 调整Firebase控制台的Microsoft登录设置

  • 打开Firebase控制台,进入项目的「Authentication」>「登录方法」>「Microsoft」
  • 清空「客户端密钥」字段:公共客户端无需配置密钥,保存修改
  • 确认「重定向URI」列表包含对应平台的正确地址

3. 代码优化(可选)

显式指定Azure应用的客户端ID,避免配置歧义:

final microsoftProvider = MicrosoftAuthProvider()
  ..clientId = "你的Azure应用客户端ID"; // 替换为实际的客户端ID

if (kIsWeb) {
  await FirebaseAuth.instance.signInWithPopup(microsoftProvider);
} else {
  final UserCredential result =
      await FirebaseAuth.instance.signInWithProvider(microsoftProvider);
  print(result);
}

4. 验证修复

  • 卸载并重装Flutter应用(或清除应用缓存)
  • 重新测试Microsoft登录流程,确认错误消除

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 14:52:21