我们目前有一个 SPFX webpart(React 应用程序),它使用 SSO,然后“代表”用户调用 Graph API。SPFX 包安装到 SharePoint/Teams 中,安装包的管理员同意使用 Graph API。我们想要更简单的用户体验,让他们能够从 Microsoft Teams 应用商店下载应用。
是否可以使用带有静默身份验证的Microsoft Graph Toolkit 2.0来提供与 SPFX Webpart 相同的无缝体验?我能够找到的唯一示例使用TeamsProvider,但登录必须由用户启动,并且需要显示一个弹出窗口。最终,我们希望获得没有弹出窗口的体验。这可能吗?您能否提供一个链接到调用需要额外范围(例如 Mail.Read)的 Graph API 的工作示例?
我还看到了许多使用 ADAL 而不是 MSAL 或最新的 Microsoft Graph Toolkit 的示例。我们应该使用 ADAL 还是 MSAL 来实现这一点?
下面显示了使用在 App.tsx 中初始化的 TeamsProvider 的代码以及当用户使用 Teams 选项卡中的Login组件启动登录时的 Auth.tsx 弹出窗口:
应用程序.tsx:
import { TeamsProvider } from '@microsoft/mgt-teams-provider';
function App() {
// Initialize the Microsoft Teams SDK
microsoftTeams.initialize();
// Define Teams as the global provider.
TeamsProvider.microsoftTeamsLib = microsoftTeams;
Providers.globalProvider = new TeamsProvider(AppConfiguration.TeamsConfiguration());
身份验证.tsx
import React, {useEffect, Fragment} from 'react';
import * as microsoftTeams from "@microsoft/teams-js";
import {TeamsProvider} from '@microsoft/mgt-teams-provider';
const Authentication: React.FC = () => {
useEffect(() => {
TeamsProvider.microsoftTeamsLib = microsoftTeams;
TeamsProvider.handleAuth();
});