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

如何通过Microsoft Office Word加载项对Web应用后端API进行身份验证?

Word加载项获取访问令牌关联Web应用账户的解决方案

正确的API调用方式

你之前尝试的几个API要么已废弃,要么是旧版本写法。当前Office加载项获取访问令牌的标准方法是使用OfficeRuntime.auth.getAccessToken(),这是替代旧Office.context.auth相关API的最新实现。

前端代码示例

async function fetchAccessTokenAndAssociate() {
  try {
    // 获取访问令牌,配置项根据需求调整
    const accessToken = await OfficeRuntime.auth.getAccessToken({
      allowSignInPrompt: true,  // 未登录时弹出登录框
      allowConsentPrompt: true, // 需要授权时弹出授权框
      forMSGraphAccess: false   // 不需要访问Graph API则设为false
    });

    // 把令牌发送到后端做验证和账户关联
    await sendTokenToBackend(accessToken);
    console.log("账户关联流程启动");
  } catch (error) {
    // 错误分类处理
    switch (error.code) {
      case 13001:
        console.error("用户未登录,请先登录Office账户");
        break;
      case 13002:
        console.error("用户拒绝授权,无法获取令牌");
        break;
      case 13006:
        console.error("服务内部错误,请稍后重试");
        break;
      default:
        console.error("获取令牌失败:", error.message);
    }
  }
}

async function sendTokenToBackend(token) {
  try {
    const response = await fetch("/your-backend-auth-endpoint", {
      method: "POST",
      headers: { "Content-Type": "application/json" },
      body: JSON.stringify({ accessToken: token })
    });
    const result = await response.json();
    if (result.success) {
      console.log("Word用户与Web应用账户关联成功");
    } else {
      console.error("关联失败:", result.msg);
    }
  } catch (err) {
    console.error("发送令牌到后端失败:", err);
  }
}

后端验证逻辑

  1. 收到前端传来的令牌后,需要验证令牌的合法性:
    • 验证签名是否有效(使用Microsoft公钥)
    • 检查令牌的exp字段确保未过期
    • 确认aud字段匹配你的Azure AD应用ID
  2. 从令牌的oid(对象ID)或sub字段提取用户唯一标识
  3. 将该标识与你的Web应用用户系统关联(已有账户则绑定,无则创建新账户)

关键配置检查

  • 确保你的加载项已在Azure AD完成注册,且配置了正确的重定向URI(需匹配加载项的域名)
  • 加载项清单文件中需添加Permissions节点,指定所需权限(如<Permissions>ReadWriteDocument</Permissions>),并在Azure AD中配置对应的API权限
  • 确认加载项所在域名已加入Azure AD应用的CORS允许列表

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 19:23:11