![](/img/trans.png)
[英]AADSTS9002326: Cross-origin token redemption is permitted only for the 'Single-Page Application'
[英]Microsoft Graph: Cross-origin token redemption is permitted only for the 'Single-Page Application
我想在 Microsoft Graph 中的文檔授權和登錄 OneDrive 之后兌換訪問令牌的代碼
這是我用於此步驟的 API
發布 https://login.microsoftonline.com/common/oauth2/v2.0/token
我已經在 Postman 上測試了 API,它工作正常。
但是,當我嘗試使用我的代碼 JavaScript 時,我收到錯誤消息“僅允許‘單頁應用程序’進行跨域令牌兌換”,
{
"error":"invalid_request",
"error_description":"AADSTS90023: Cross-origin token redemption is permitted only for the 'Single-Page Application' client-type.\r\nTrace ID: 57ebcf82-278c-4375-a4db-b81ab567fc00\r\nCorrelation ID: 5a80b3fa-1e0d-4265-8fbe-5e22df198bee\r\nTimestamp: 2021-04-26 10:26:36Z",
"error_codes":[
90023
],
"timestamp":"2021-04-26 10:26:36Z",
"trace_id":"57ebcf82-278c-4375-a4db-b81ab567fc00",
"correlation_id":"5a80b3fa-1e0d-4265-8fbe-5e22df198bee"
}
所以,我試圖通過添加 header 來解決這個問題,但它不起作用。 以下是我的編碼。 我的 web 托管在 firebase 上。
function RedeemToken(){
var myHeaders = new Headers();
myHeaders.append("Access-Control-Allow-Origin", "*");
myHeaders.append("Access-Control-Allow-Methods", "POST");
myHeaders.append("Access-Control-Allow-Headers", "Content-Type");
myHeaders.append("Access-Control-Max-Age", "3600");
myHeaders.append("Content-Type", "application/x-www-form-urlencoded");
var urlencoded = new URLSearchParams();
urlencoded.append("client_id", "XXXX");
urlencoded.append("redirect_uri", "https://XXXX.web.app/LinkToAuthen.html");
urlencoded.append("client_secret", "XXXX");
urlencoded.append("code", XXXX);
urlencoded.append("grant_type", "authorization_code");
var requestOptions = {
method: 'POST',
headers: myHeaders,
body: urlencoded,
redirect: 'follow'
};
fetch("https://login.microsoftonline.com/common/oauth2/v2.0/token", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
}
更改 App 注冊 -> 身份驗證 -> 平台類型應為 SPA 而不是 Web 或反之亦然。
我在 Angular 項目中遇到了同樣的 SSO 問題,就我而言,我創建了一個錯誤的平台(即 Web)。 一旦我創建了一個平台“單頁應用程序”。 它對我來說很好。
用於創建平台的文檔 URL: https://docs.microsoft.com/en-us/azure/active-directory/develop/scenario-spa-app-registration
用於 angular 集成的文檔 URL: https://docs.microsoft.com/en-us/azure/active-directory/develop/tutorial-auth-code
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.