我通过使用adal-node包中的acquireTokenWithClientCredentials
函数来声明访问令牌。
之后,我使用@microsoft/microsoft-graph-client包创建一个使用 Graph API 的客户端实例。
private client: Client;
async getClient(): Promise<Client> {
if (!this.client) {
const accessToken: string = /* get access token from adal-node */;
this.client = Client.init({
authProvider: (done) => {
done(null, accessToken);
},
});
}
return this.client;
}
客户端本身仅附带api
函数。我想知道客户端是否负责访问令牌过期,或者我是否必须处理它。
因此,在拨打电话之前,我可以做token.expiresOn < new Date()
检查令牌是否已过期。如果为 true,我可以创建一个新的客户端实例。但是我想知道我是否必须或我只需要初始化一次客户端,一切都会"永远"好起来的。
无需自行处理访问令牌过期。
每次需要使用访问令牌时,只需调用acquireTokenWithClientCredentials
即可。
如果令牌尚未过期,它仍将返回旧令牌。
如果它过期,它将获得一个新的。