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

如何获取SharePoint的AccessToken?未登录微软账号能否获取?

SharePoint REST API AccessToken 获取指南(React场景)

一、如何获取Access Token

在React项目中,最常用且安全的方式是使用微软官方的MSAL(Microsoft Authentication Library)处理身份验证并获取token,具体步骤如下:

1. 前置配置

先在Azure Active Directory中注册一个应用:

  • 配置React应用的重定向URI(比如本地开发的http://localhost:3000)
  • 添加对应SharePoint权限(比如Files.ReadWrite.All、Sites.ReadWrite.All,根据上传需求选择)

2. 项目集成MSAL

安装依赖:

npm install @azure/msal-react @azure/msal-browser

初始化MSAL实例:

import { PublicClientApplication } from '@azure/msal-browser';

const msalConfig = {
    auth: {
        clientId: '你的Azure AD应用ID',
        authority: 'https://login.microsoftonline.com/你的租户ID', // 允许个人微软账号登录的话,可替换为'https://login.microsoftonline.com/common'
        redirectUri: '你的React应用重定向地址'
    }
};

export const msalInstance = new PublicClientApplication(msalConfig);

3. 获取Access Token

先引导用户完成登录,再尝试静默获取token(失败则触发交互式登录):

const getAccessToken = async () => {
    const request = {
        scopes: ['https://你的SharePoint站点域名.sharepoint.com/.default']
    };

    try {
        const response = await msalInstance.acquireTokenSilent(request);
        return response.accessToken;
    } catch (err) {
        // 静默获取失败,弹出登录窗口
        const response = await msalInstance.acquireTokenPopup(request);
        return response.accessToken;
    }
};

另外,若开发SharePoint Add-in,也可通过客户端ID+密钥的方式获取token,但这种方式更适合服务器端,纯React前端使用会存在密钥泄露风险,不推荐。

二、未登录微软账号能否获取Access Token?

不行。SharePoint的所有API调用都需要身份验证,无论是用户个人账号登录的委托权限,还是应用级别的客户端凭据权限,都必须通过微软身份验证体系完成身份校验。未登录状态下没有合法身份凭证,无法获取有效的Access Token调用SharePoint REST API。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 17:01:36