【发布时间】:2020-12-19 05:04:36
【问题描述】:
我通过以下代码获取访问令牌。
protected async getAccessToken(): Promise<string> {
return await this.context.aadTokenProviderFactory
.getTokenProvider()
.then((tokenProvider: AadTokenProvider): Promise<string> => {
return tokenProvider.getToken(Config.resourceEndpoint, false);
})
.catch(error => {
console.error("getAccessToken", error);
return null;
});
}
每次获取的访问令牌都是一样的,但是这个令牌会在一小时后过期,这会导致我无法访问azure web app上的webapi。我怎么解决这个问题?有没有人遇到过类似的问题?
【问题讨论】:
-
这是前端代码吗?并且您在一小时后在日志中收到错误?
-
这是 SPFx Web 部件中的反应代码。 azure app api在token过期后会返回401错误。
-
通常 MSAL(如果在此处使用)应该通过隐式流(隐藏的 iframe)自动刷新令牌。所以它会在大约 55 分钟内返回相同的令牌,然后获取一个新的令牌并返回它。您是否总是要求从中获得新的令牌?
-
它在 AadTokenProvider 中使用了 adal.js。 55 分钟后,将返回旧令牌而不是新令牌。
标签: azure-active-directory azure-functions access-token azure-web-app-service azure-authentication