Office 365 租户的访问令牌不起作用

问题描述 投票:0回答:1

我正在加载项中工作,这就是我使用 Office 对话框登录的原因

var url = "https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=myclientid&response_type=token&redirect_uri=https://localhost:3000/assets/Redirect.html&scope=user.read%20mail.readwrite%20mail.send&response_mode=fragment&state=12345&nonce=678910";
Office.context.ui.displayDialogAsync(url, {  height: 60, width: 40 }, function (asyncResult) {
Logindialog = asyncResult.value;
Logindialog.addEventHandler(Office.EventType.DialogMessageReceived, function (arg) {
  token = arg.message;
  });
});

在我的

redirect.html
文件中使用它成功登录后,我获得了令牌

 var address_Link = window.location.href;
 console.log(address_Link)
 var address_arr = address_Link.split("=");
 var address_Token = address_arr[1];
 var Id_Token = address_Token.split("&");
 var access_token = Id_Token[0];
 console.log(Id_Token);
 Office.onReady(function (appInfo) {    
  Office.context.ui.messageParent(JSON.stringify(access_token));
 })

我的简单 Microsoft 帐户令牌如下所示

EwCoA8l6BAAUs5%2bHQn0N%2bh2FxWzLS31ZgQVuHsYAASzDAo%2bzOHW8bimiwipl3VtTsk4JI1MUN2Osop4ryl1wGSRhZypgzfO/ff1zkOGAzStT4BsAzkSOV/0LiCtQ2MTB2RsR1%2buhflh 3Pq2CwOawwTS7nj/%2bKnDFvH3N9h6N8uwruiEH4OZekE0gfk4fOfY2Go5IgrWUfbs%2bjcbNXKGv/Ekc4PesSXNaII5mCyBjLVuvxvLHhrZzAL7tu8AxCFyd5XxAWP6pXjJRZk7ow0ChUQeNNPNP5/ rWSTLBbMu3AORmKIi%2bvfdvVcxhmmQmpAgU4glN6BIR7gKj6pkvhKQVydGIvTPvFlLOvWJItF5um8ignPEgP43gMqmPsH07xFJcDZgAACBbA8fXreaJdeAK%2bseTrYHH7KxKhahPIN2sZUfAZKPHjuoPq hQopFvQFxWUljFolJzHWn00pHbW3pVm95S58HngtIYDzNg9uKqIm9O3VJdrwctgnsDA5cMNPFzyOb3nYh58BSdefe3c42D1n7ovKtUjKtQR%2b5zJrocarrwXhYLvXbAg2kMliEc1zqiCbyH6ila 5s63mWaoufy%2bFnPkW9nyQ2qaTfqWgFa0tHlaNgWf9a2j5zlLUFTvaw9zLRtilFLWoOv1FMfEzw/A7WaebYW4DHCOeMJIkd2NjHGtqg3kXj0cXf1Jt2xQnoIG8vR5w%2bzqI/tfqMAMkJSOSGCLRdjN JUadF8NNYFbzoLX8TPeYarwHWJRbXBUtbBhOpRJE/DTwaJh800AcUBM6y5v1bFnRBWtdAYtrlefL0lQT2FodrcpcVH9AAao2ks2EQa0Xla8D39dYDcGqQ1mg3VCzjz7qNlhnIP6D30oL%2bzM8oTjjZahKE 62ISPcpWEVTPQ3s7CddKYR6TJ86xmLGqTedK1u5xypHopSXTRzCbLvu6pGaKZy%2bacDVwT8YzABbZfGYdZnmh6CDfoYubYI924O0r22XC1rtrdGv9ghCDkZEcGIIiJelTiTRpgP/QDHLXW2Qci4gwRUK3cIYCTQ ds9Z2PA6sn3iDpa/Sf8vyaQZ1m99Rek8mVifBkGxOr2O7t5Tzq69sBOMylz7y7SvWlHEgqpC%2bSQ3/ eQX6wcOEbrdldqFA5yu%2bqm0bANF5RIc1L7AZo/PagLt1DmAILJKIxomQ5pTelqeXpAKUM4qN%2b4ym4TKhINqNAnks4rd4/1aLeVG9o%2bZG98f6ePdGKf4MC9%2boSKewl2qgC

当我使用 Office 365 的租户登录时,我得到了这样的令牌

eyJ0eXAiOiJKV1QiLCJub25jZSI6IkJneVFGOVVSTm5RSlh4end2MTlsTGV6QWFqUG9maFBJUEdSUmtXOTVTSnMiLCJhbGciOiJSUzI1NiIsing1dCI6ImtXYmthYTZxczh3c1RuQndpaU5ZT2hIYm5BdyISI mtpZCI6ImtXYmthYTZxczh3c1RuQndpaU5ZT2hIYm5BdyJ9.eyJhdWQiOiIwMDAwMDAwMy0wMDAwLTAwMDAtYzAwMC0wMDAwMDAwMDAwMDAiLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC8zYT c0YmRlZi05ZWQ1LTQ0NGMtYjZjNC1kYmFhYmMwNmMwNGYvIiwiaWF0IjoxNzA4MTc5NDA1LCJuYmYiOjE3MDgxNzk0MDUsImV4cCI6MTcwODE4NDkwNCwiYWNjdCI6MCwiYWNyIjoiMSISimFjcnMiOls idXJuOnVzZXI6cmVnaXN0ZXJzZWN1cml0eWluZm8iXSwiYWlvIjoiQVRRQXkvOFZBQUFBVm53ZDkvM0tZK3VNU2I4eWlHTVlyZXd2c2xCY2diNEI3NFkxVkV3d290ZTM5Wnd4ZUhMaVB2aUVVcDNodnBn RSISImFtciI6WyJwd2QiXSwiYXBwX2Rpc3BsYXluYW1lIjoiT3V0bG9vayBBZGRpbiIsImFwcGlkIjoiMTc1Zjc2ZDAtY2YxNS00MjBlLTg2NmUTYjBjOWZjNmJmodFiIiwiYXBwaWRhY3IiOiIwii WiaGFzd2lkcyI6InRydWUILCJpZHR5cCI6InVzZXIiLCJpcGFkZHIiOiI3NC4yMzQuNTAumzMiLCJuYW1lIjoiZnVuZGF0aW8iLCJvaWQiOiJiMjU2NDRhYy0xNjAyLTQ2NzUtOTMwZC0xNDJmZDhkYzc3 MzAiLCJwbGF0ZiI6IjMiLCJwdWlkIjoiMTAwMzIwMDE2NzI4QjIzQSIsInJoIjoiMC5BWUVBNzcxME90V2VURVMyeE51cXZBYkFUd01BQUFBQUFBQUF3QUFBQUFBQUFBQ0JBT0EuIiwic2NwIjoiZW1haWwgRmlsZ XMuUmVhZCBGaWxlcy5SZWFkLkFsbCBGaWxlcy5SZWFkV3JpdGUgRmlsZXMuUmVhZFdyaXRlLkFsbCBNYWlsLlJlYWQgTWFpbC5SZWFkQmFzaWMgTWFpbC5SZWFkV3JpdGUgTWFpbC5TZW5kiG9wZW5pZ CBwcm9maWxlIFVzZXIuUmVhZCIsInN1YiI6IkFVU0wzSl9OQ0g0OTZEcDg0cUtydUE3Ym93Vkw0YjZqYUFnYUNNbGh6d0kiLCJ0ZW5hbnRfcmVnaW9uX3Njb3BlIjoiRVUiLCJ0aWQiOiIzYTc 0YmRlZi05ZWQ1LTQ0NGMtYjZjNC1kYmFhYmMwNmMwNGYiLCJ1bmlxdWVfbmFtZSI6ImZ1bmRhdGlvQGZ1bmRhdGlvLm9yZyIsInVwbiI6ImZ1bmRhdGlvQGZ1bmRhdGlvLm9yZyIsInV0 ASI6Imd1YjRCNERVNTBHY1BOeXVsRk1HQVEiLCJ2ZXIiOiIxLjAiLCJ4bXNfc3QiOnsic3ViIjoiVFRJcVNfanhaNXAyRnpROVJPaG5tZWxLVjNrRkFPdmQ5Z2leUZySU15QSJ9LCJ4bXNfdGNkdCI6 MTYxODQ4MjgyNCwieG1zX3RkynIiOiJFVSJ9.LS0n3DWrv-YHufr9oA4PW97_nwQ_oP6Z4e-jdWvQrU97nznZQs9w-qfeRvtijUXvmVEGo8fyUgCCZ1UNLB3pbOIWZYIOPhXmsGiWs5sjdn9-vKT- 394jBUqCqkaLXa2aldBWGUmklDJ81TYzFV4C7BEjQang162KjHqetXg118OEmDZaayd1VyNWIc2xQ6RK-gmxvPOqv8CPIAOj4fQ8HcQxpUtpSONr98mVwX4potYpJVV2Vn6-GALF86DYNrxw1rBt3qOM hCInHMwxgQHsLK_XO2tnSoJ-LZzk5NusOOPnM4GVrcsKgA9jUK3NwBrJYpda2RAkcHfcM5hkOYxc1A

  • 当我发送邮件时,我的第一个简单 Microsoft 帐户令牌工作正常,但我的第二个 Office 365 帐户令牌给出了
    error status of 401
    这些令牌之间有什么区别,我如何使用这两个令牌发送邮件?
azure outlook microsoft-graph-api office-js access-token
1个回答
0
投票

作为解决方法,请使用 Microsoft 域用户,例如

[email protected]

创建 Microsoft Entra ID 应用程序并授予 API 权限:

enter image description here

现在我使用以下端点生成了auth-code

https://login.microsoftonline.com/TenantID/oauth2/v2.0/authorize?
&client_id=ClientID
&response_type=code
&redirect_uri=https://jwt.ms
&response_mode=query
&scope=https://graph.microsoft.com/.default
&state=12345

enter image description here

使用以下参数通过 Postman 生成访问令牌

https://login.microsoftonline.com/TenantID/oauth2/v2.0/token

client_id:ClientID  
scope:https://graph.microsoft.com/.default
grant_type:authorization_code  
code:code  
redirect_uri:https://jwt.ms
client_secret:Secret

enter image description here

解码访问令牌:

enter image description here

现在通过使用上面的访问令牌,我能够成功发送邮件:

POST https://graph.microsoft.com/v1.0/me/sendMail
Content-type: application/json

{
  "message": {
    "subject": "Meet for lunch?",
    "body": {
      "contentType": "Text",
      "content": "The new cafeteria is open."
    },
    "toRecipients": [
      {
        "emailAddress": {
          "address": "xxx.onmicrosoft.com"
        }
      }
    ],
    "ccRecipients": [
      {
        "emailAddress": {
          "address": "xxx.onmicrosoft.com"
        }
      }
    ]
  },
  "saveToSentItems": "false"
}

enter image description here

参考:

用户:sendMail - Microsoft Graph v1.0 |微软

© www.soinside.com 2019 - 2024. All rights reserved.