我從前端呼叫 backend-api,出于身份驗證目的我使用 azure-ad onfronted 和后端,當我第一次獲取 API 時,請求得到身份驗證,但對于下一個 api 呼叫,fronted 是呼叫方法
const checkAccessTokenandGenerateIfExpired = () => {
const account = msalInstance.getAllAccounts()[0];
const accessTokenRequest = {
scopes: ["User.Read"],
account: account
}
msalInstance.acquireTokenSilent(accessTokenRequest).then(function (accessTokenResponse) {
let accessToken = accessTokenResponse.accessToken;
localStorage.removeItem("token");
localStorage.setItem("token", accessToken);
return toString(accessToken)
}).catch(function (error) {
if (error instanceof InteractionRequiredAuthError) {
msalInstance.acquireTokenPopup(accessTokenRequest).then(function (accessTokenResponse) {
console.log(accessTokenResponse)
let accessToken = accessTokenResponse.accessToken;
localStorage.removeItem("token");
localStorage.setItem("token", accessToken);
}).catch(function (error) {
console.log(error);
});
}
console.log(error);
});
};
后端回傳: - 身份驗證失敗
不知道上面代碼中的錯誤是什么,因為上面的代碼塊在第二次 API 呼叫期間生成了新令牌
uj5u.com熱心網友回復:
這是因為您在 accessTokenRequest (User.Read) 中使用 Microsoft Graph API 范圍。您需要為您的 API 使用范圍,而不是 MS Graph。您可以在 API 應用注冊的“公開 API”頁面中定義它們。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/426228.html
上一篇:是否有用于從FunctionApp獲取運行狀況檢查狀態的AzureCLI命令?
下一篇:更改Azure存盤帳戶TLS版本
