来自 microsoft-graph-client 的客户端实例是否会刷新令牌本身?

does the client instance from microsoft-graph-client refreshes the token itself?

我正在使用 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() 检查令牌是否已过期。如果为真,我可以创建一个新的客户端实例。但是我想知道我是否必须或者是否只需要初始化客户端一次就可以了"forever".

access token过期没必要自己处理。

每次需要使用access token,调用acquireTokenWithClientCredentials即可。

如果令牌没有过期,它仍然return你是旧令牌。

如果它过期了,它会得到一个新的。