我有一个自定义 Api,我使用 Azure AD 保护它,如下教程所示: https://learn.microsoft.com/en-us/sharepoint/dev/spfx/use-aadhttpclient 效果很好。
现在我有以下代码可以向我的自定义 API 发出 GET 请求(工作):
this.context.aadHttpClientFactory
.getClient('MY_API_URL')
.then((client: AadHttpClient) => {
console.log(AadHttpClient.configurations.v1);
return client
.get(
`MY_API_URL/SOME_ROUTE`,
AadHttpClient.configurations.v1
);
})
.then(response => {
var res= response.json();
return res;
}).then( (res: any[]) => {
...
HERE I WOULD LIKE TO GET MY TOKEN
});
所以这正在按照我期望的方式工作。 但aadHttpClientFactory只支持GET和POST请求
现在我的想法是用 jQuery 发出一些 PUT/DELETE 请求并使用上面得到的 Bearer token (使用 postman 及其工作进行测试)。 但后来我意识到,我不会那么容易得到 token 。 当我 console.log(AadHttpClient.configurations.v1) 我只得到这个:
当然,我可以将 API 更改为使用 POST 而不是 PUT/DELETE,但这会非常难看 有谁知道如何获取字符串形式的 token 来用它执行自定义请求?
最佳答案
AadHttpClient支持fetch(url, configuration, options)
方法,其中 options
可以包含 Fetch API 支持的所有请求配置选项.
因此,要发出 DELETE 请求,您需要执行以下操作:
client
.get(
`MY_API_URL/SOME_ROUTE`,
AadHttpClient.configurations.v1,
{
method: 'DELETE'
}
);
关于javascript - 是否可以将删除/放置请求发送到 Azure AD 安全 api 或使用 aadHttpClientFactory 以字符串形式获取 jwt token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58647053/