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

使用JavaScript实现Firebase微软身份认证遇错误求助

问题分析与解决方案

错误核心原因

报错AADSTS70011: The provided request must include a 'scope' input parameter,本质是请求中缺少微软OAuth认证必需的基础权限范围——仅添加Xbox Live相关scope不足以完成Firebase与微软的OAuth交互流程。

配置与代码问题排查

Azure与Firebase配置

你的Azure应用注册配置(账户类型选择、重定向URI设置、客户端密钥/应用ID填入Firebase、启用微软认证提供商)整体正确,需补充两项检查:

  • 进入Azure应用注册的API权限页面,确认已添加Xbox Live相关权限(Xboxlive.signin、Xboxlive.offline_access);个人微软账户无需管理员同意,组织账户需完成权限授予操作。
  • 检查Firebase控制台的微软认证设置,若在「自定义OAuth范围」中填写了内容,需确保包含openid、profile、email这类基础scope,或直接留空以使用代码中定义的scope。

代码问题

你的代码仅添加了Xbox Live的专属scope,但微软OAuth认证要求必须携带openid、profile这类基础scope,否则会触发「缺少scope参数」的错误——Firebase依赖这些基础scope获取用户基本信息,完成认证链路的闭环。

修复后的代码

修改provider的scope添加逻辑,补充微软OAuth必需的基础scope:

const firebaseApp = firebase.initializeApp({...});
const auth = firebaseApp.auth();

auth.setPersistence(firebase.auth.Auth.Persistence.LOCAL)
        .then(() => {
            var provider = new firebase.auth.OAuthProvider('microsoft.com');
            // 添加微软OAuth必需的基础scope
            provider.addScope('openid');
            provider.addScope('profile');
            provider.addScope('email');
            // 添加Xbox Live相关scope
            provider.addScope('Xboxlive.signin');
            provider.addScope('Xboxlive.offline_access');
            auth.signInWithRedirect(provider);
        })
        .catch((error) => {
            var errorCode = error.code;
            var errorMessage = error.message;
            console.log(errorCode + " " + errorMessage);
        });

auth.getRedirectResult()
        .then((result) => {
            console.log(result);
            // IdP data available in result.additionalUserInfo.profile.
            // ...

            // @type {firebase.auth.OAuthCredential}
            var credential = result.credential;

            // OAuth access and id tokens can also be retrieved:
            var accessToken = credential.accessToken;
            var idToken = credential.idToken;
        })
        .catch((error) => {
            var errorCode = error.code;
            var errorMessage = error.message;
            console.log(errorCode + " " + errorMessage);
        });

额外验证步骤

  1. 清除浏览器缓存,避免旧的认证会话干扰新流程。
  2. 再次确认Azure应用注册的重定向URI与Firebase提供的地址完全一致(包括HTTPS协议、完整路径)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 11:35:31