[英]@azure/msal-browser TypeError: this.startPerformanceMeasurement is not a function
因為 nuxt 3 還沒有構建 Auth 庫,所以我正在嘗試創建自己的可組合項 useAuth。
當我嘗試調用 loginRedirect 或 loginPopup 方法時出現 startPerformanceMeasurement 錯誤。
Uncaught (in promise) TypeError: this.startPerformanceMeasurement is not a function
at PerformanceClient2.startMeasurement (PerformanceClient.ts:100:45)
at BrowserPerformanceClient2.startMeasurement (BrowserPerformanceClient.ts:46:55)
at RedirectClient2.<anonymous> (StandardInteractionClient.ts:204:64)
at step (_tslib.js:87:23)
at Object.next (_tslib.js:68:53)
at _tslib.js:61:71
at new Promise (<anonymous>)
at __awaiter (_tslib.js:57:12)
at StandardInteractionClient2.getDiscoveredAuthority (StandardInteractionClient.ts:202:115)
at RedirectClient2.<anonymous> (StandardInteractionClient.ts:142:48)
可組合物/useAuth.js
import * as msal from '@azure/msal-browser'
let state = {
authService: null,
}
export const useAuth = () => {
// use public configuration from nuxt
var config = useAppConfig();
//create authentication instance
state.authService = new msal.PublicClientApplication(config.msalConfig);
//return signIn method
return {
signIn
}
}
const signIn = async () => {
const tokenRequest = {
scopes: [
'openid',
'offline_access',
'Users.Read'
],
}
const response = await state.authService
.loginRedirect(tokenRequest)
.then(() => {
})
.catch(err => {
console.log(err) //TypeError: this.startPerformanceMeasurement is not a function
});
}
索引.vue
<script setup>
if(process.client) {
const auth = useAuth()
auth.signIn()
}
</script>
我通過降級多個版本進行了測試,第一個工作的是@azure/msal-browser@2.31.0
也面臨這個問題。 這是由於 Microsoft 的錯誤引起的。 工作正常的版本是:
"@azure/msal-browser": "2.32.0",
"@azure/msal-common": "9.0.1",
"@azure/msal-react": "1.5.0",
請確保刪除號碼中的 ^ 以使其固定。 觀看https://github.com/AzureAD/microsoft-authentication-library-for-js/issues/5569以獲取來自 MS 的更新。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.