是的,AWS Cognito提供了一种方式来检查用户是否已登录,而不需要暴露用户数据。您可以使用Cognito提供的身份验证和授权服务来实现此功能。
首先,您需要设置Cognito身份池,并在身份池中配置用户池。然后,您可以使用AWS SDK或AWS CLI来调用Cognito的API。
以下是一个使用AWS SDK(JavaScript)的代码示例:
const AWS = require('aws-sdk');
const cognitoidentity = new AWS.CognitoIdentity();
const params = {
IdentityPoolId: 'your-identity-pool-id',
Logins: {
'cognito-idp.us-east-1.amazonaws.com/your-user-pool-id': 'your-user-token'
}
};
cognitoidentity.getId(params, function(err, data) {
if (err) {
console.log(err, err.stack);
} else {
console.log(data);
// 用户已登录
}
});
在上述示例中,'your-identity-pool-id'是您身份池的ID,'your-user-pool-id'是您用户池的ID,'your-user-token'是用户的令牌。
如果用户已登录,将返回用户的身份ID。如果用户未登录,将引发异常。
您可以将此代码集成到您的HTTP API中,在需要检查用户是否已登录的位置调用Cognito API。