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

持有有效Token仍无法通过Microsoft Graph API访问/me/messages获取Outlook邮件

问题:在React中通过Microsoft Graph API调用/me/messages返回401错误,但/me接口正常

我正尝试在React前端通过Microsoft Graph API获取用户邮件数据(调用/me/messages接口)。已在Azure中注册应用程序,授予了User.Read、Mail.Read等必要权限,并且通过MSAL成功获取了访问令牌。

我的实现流程:

  • React前端使用@azure/msal-browser完成用户身份验证并获取访问令牌。
  • 使用该令牌调用Microsoft Graph API的代码如下:
const fetchEmails = async () => {
    if (!accessToken) return;
    
    setLoading(true);
    setError(null);
    try {
      let endpoint = graphConfig.graphMailEndpoint;
      
      //console.log("========> accessToken", accessToken);
      const response = await fetch(
        `${endpoint}?$orderby=receivedDateTimedesc&$top=50`,
        {
          headers: {
            Authorization: `Bearer ${accessToken}`,
          },
        }
      );
   

      if (!response.ok) {
        throw new Error('Failed to fetch emails');
      }

      const data = await response.json();
      setEmails(data.value || []);
    } catch (err) {
      setError('Error fetching emails: ' + err.message);
    } finally {
      setLoading(false);
    }
  };

目前我能成功调用/me接口获取用户个人资料,说明身份验证和令牌生成功能正常,但调用/me/messages时始终返回401错误。

我已经排查过以下内容:

  1. 令牌生成正常
  2. 令牌未过期(通过JWT解码器确认)
  3. 权限已授予并获得管理员同意
  4. 请求的范围与配置一致(包含Mail.Read)

想问下我可能遗漏了什么?会不会是令牌受众的问题?


解决方案
  • 检查令牌受众(aud声明):确认令牌的aud值为https://graph.microsoft.com,Graph API仅接受受众为自身的令牌。部分基础接口如/me可能兼容其他受众,但邮件接口校验更严格。
  • 确认请求范围格式:获取令牌时的范围必须是Graph API的标准格式,比如https://graph.microsoft.com/Mail.Read,而非应用权限格式(如api://{client-id}/Mail.Read),且需明确包含Mail.Read权限。
  • 修复请求参数语法:你的$orderby参数存在拼写错误,receivedDateTimedesc应为receivedDateTime desc(注意空格),语法错误可能触发异常请求,间接导致权限校验问题。
  • 验证令牌权限声明:通过JWT解码器查看令牌的scp(委派权限)或roles(应用权限)字段,确认是否包含Mail.Read。若为委派权限,需确保用户自身邮箱正常启用且具备访问权限。
  • 检查MSAL令牌获取逻辑:在loginPopup或acquireTokenSilent的scopes参数中,需明确指定包含Mail.Read的完整范围列表,比如["https://graph.microsoft.com/User.Read", "https://graph.microsoft.com/Mail.Read"]。避免首次登录仅请求基础权限,后续未追加邮件权限导致令牌缺少对应声明。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 03:57:06