我有一个使用vscode中的teams toolkit创建的teams应用程序,目前我正在使用它。
我也向应用程序添加了一个Azure函数。我可以在本地调试中调用该函数。但是当我尝试在将其部署到Azure后调用该函数时,我会收到以下错误:
访问令牌验证失败:客户端ID 5e 3ce 6c 0 - 2b 1f-4285- 8d 4 b-75 ee 78787346无权调用此http触发器
我按照本指南https://github.com/OfficeDev/TeamsFx/wiki/Multi-tenancy-Support-for-Azure-AD-app将AAD应用程序设置为多租户应用程序
我的fetch调用在我的代码中看起来像这样
const teamsfx = new TeamsFx();
const accessToken = await teamsfx.getCredential().getToken("");
const response = await fetch(
`${process.env.REACT_APP_FUNC_ENDPOINT}/api/POST_request_to_db`,
{
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${accessToken?.token || ""}`,
},
body: JSON.stringify(requestInfo),
}
)
.then((response) => response.json())
.then((data) => {
console.log("Success:", data);
})
.catch((error) => {
console.error("Error:", error);
});
}
该应用程序基于SSO选项卡模板构建。
我不知道是否有什么问题,在AAD应用程序或令牌?我试图运行teamsFX作为IdentityType应用程序和用户。但没有任何工作。
1条答案
按热度按时间tyg4sfes1#
我也遇到了类似的问题,结果发现这与访问权限有关,但不是人们所期望的方式。
即使我是有问题的团队通道的所有者,但在“完全”控制的情况下,简单的GET也会导致问题。
首先,请确认访问令牌是正确的站点,可以为空,例如:
第二,返回的不是实际的token本身,实际的token是返回的访问令牌promise的一个属性,例如:
好吧,反正这些都是让我绊倒的东西。