类型错误:performanceMeasurement.startMeasurement 不是函数

Wav*_*lid 12 typescript reactjs azure-active-directory azure-ad-msal next.js

当尝试在 Next 13 中从 @azure/msal-react 登录时,就发生了错误。当我检查错误日志时,它来自核心库 @azure/msal-react。我也尝试过登录弹出窗口,但错误仍然相同

我有代码,在我的 auth.ts

export const msalConfig = {
    auth: {
        clientId : "afxxxxx-xxxxxx-xxxxxx",
        authority : "https://login.microsoftonline.com/common/",
        redirectUri : "/",
    }
};

export const loginRequest = {
    scope: ["User.Read"]
};

Run Code Online (Sandbox Code Playgroud)

_app.ts

import { MsalProvider } from '@azure/msal-react'
import { PublicClientApplication, EventType, SilentRequest, AccountInfo } from '@azure/msal-browser'
import  { msalConfig } from '@/services/auth'
import type { AppProps } from 'next/app'
import { useRouter } from 'next/router'
import { CustomNavigationClient } from '@/utils/NavigationClient'

export const msalInstance = new PublicClientApplication(msalConfig);

const accounts = msalInstance.getAllAccounts();

if (accounts.length > 0) {
  msalInstance.setActiveAccount(accounts[0]);
};

msalInstance.addEventCallback((event) => {
  if (event.eventType === EventType.LOGIN_SUCCESS && (event.payload as SilentRequest).account) {
    const account  = (event.payload as SilentRequest).account;

    msalInstance.setActiveAccount(account as AccountInfo);
  }
});

export default function App({ Component, pageProps }: AppProps) {
  const router = useRouter();

  const navigationClient = new CustomNavigationClient(router);;

  msalInstance.setNavigationClient(navigationClient);  

  return (
    <MsalProvider instance={msalInstance}>
      <Component {...pageProps} />
    </MsalProvider>
  )
}
Run Code Online (Sandbox Code Playgroud)

在我的页面中只显示登录 Index.ts

const initializeSignIn = () => {
    instance.loginRedirect();
  };

  return (
  <>
    <UnauthenticatedTemplate>
      <center>Please sign-in to see your profile information.</center>
      <button onClick={initializeSignIn}>Sign In</button>
    </UnauthenticatedTemplate>
  </>
  )
Run Code Online (Sandbox Code Playgroud)

我是否错过了配置中的某些内容,或者这只是核心库中的错误?

Cio*_*Ion 10

更新:根据此处讨论的 git 问题讨论,该问题与@azure/msal-common@9.0.1有关 ,并已在@azure/msal-common@9.1.1中修复。

您可以开始使用

"@azure/msal-browser": "^2.32.2",
"@azure/msal-react": "^1.5.2"
Run Code Online (Sandbox Code Playgroud)

截至本期发布时,最新发布的版本是

"@azure/msal-browser": "2.32.2",
"@azure/msal-react": "1.5.2"
Run Code Online (Sandbox Code Playgroud)

我使用microsoft-authentication-library-for-js获取 @azure/msal-browser@azure/msal-react使用源代码运行我的项目。工作得很好。问题似乎是在代码发布时发生的(捆绑/缩小/谁知道等等)。

在新版本发布之前,要解决该问题,请将 npm 包更改为

"@azure/msal-browser": "2.32.1",
"@azure/msal-react": "1.5.1"
Run Code Online (Sandbox Code Playgroud)


小智 6

我今天也遇到了这个问题。这可能与微软发布新版本有关。我刚刚降级,又可以了。

  • 正是如此。从 @azure/msal-browser @azure/msal-react 的本地版本构建时,我无法查明最新源代码的确切问题。看来问题是在发布代码时出现的。仅供将来参考此问题时,库的发布版本为“@azure/msal-browser”:“2.32.2”,“@azure/msal-react”:“1.5.2” (2认同)