如何检查认知访问令牌是否已过期?

How to check if a cognito access token has expired?

访问令牌的有效期为 1 小时。 我知道如何使用刷新令牌来更新访问令牌。 但是,我不知道如何检查认知访问令牌是否已过期。

模式 1:通过计时器线程测量自令牌认证以来的时间。
-> 浪费 CPU 资源...

方式二:记录认证时间&比较当前时间

模式 3:使用 AWS SDK 检查。
-> 如何使用?

模式4:其他方式。

最好的方法是什么?

if ({ m_access_token is expired? })
{
    Aws::CognitoIdentityProvider::Model::InitiateAuthRequest request;
    request.SetAuthFlow(Aws::CognitoIdentityProvider::Model::AuthFlowType::REFRESH_TOKEN_AUTH);
    request.SetClientId(m_client_id);
    request.AddAuthParameters("USERNAME", m_user_name);
    request.AddAuthParameters("REFRESH_TOKEN", m_refresh_token);
    auto outcome = m_cognito_identity_provider_client->InitiateAuth(request);
    if (outcome.IsSuccess())
    {
        m_access_token = outcome.GetResult().GetAuthenticationResult().GetAccessToken();
    }
}

我选择通过try-catch重试。

因为,如果我使用时间戳,最后我应该使用重试来确保故障安全。

谢谢。