如何检查认知访问令牌是否已过期?
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();
}
}
- 适用于 C++ 的 AWS 开发工具包
- Visual Studio 2017
我选择通过try-catch重试。
因为,如果我使用时间戳,最后我应该使用重试来确保故障安全。
谢谢。
访问令牌的有效期为 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();
}
}
- 适用于 C++ 的 AWS 开发工具包
- Visual Studio 2017
我选择通过try-catch重试。
因为,如果我使用时间戳,最后我应该使用重试来确保故障安全。
谢谢。