У меня есть веб-приложение JavaScript, которое поддерживает неподтвержденные идентификаторы Cognito. Я пытаюсь выяснить, как идентифицировать связанный аутентифицированный IdentityId для DISABLED неаутентифицированного IdentityId.
Первым пользователям, не прошедшим проверку подлинности, выдается IdentityId через AWS.config.credentials.get. Internal CognitoIdentityCredentials использует getId для создания нового не прошедшего проверку подлинности IdentityId.
let unathenticatedIdentityId;
const AWS = require('aws-sdk');
AWS.config.region = region;
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
IdentityPoolId
});
AWS.config.credentials.get(err => {
unathenticatedIdentityId = AWS.config.credentials.identityId;
});
Затем наш пользователь аутентифицируется в пул пользователей Cognito через amazon-cognito-identity-js, а неаутентифицированный IdentityId изменяет аутентифицированный IdentityId, связанный с их входом в Cognito. Неаутентифицированный IdentityId автоматически помечен DISABLED и внутренне связан с аутентифицированным IdentityId.
let authenticatedIdentityId;
const { CognitoUserPool, CognitoUser, AuthenticationDetails } = require('amazon-cognito-identity-js');
const Pool = new CognitoUserPool({
UserPoolId,
ClientId,
});
const authDetails = new AuthenticationDetails({
Username,
Password,
});
const user = new CognitoUser({
Pool,
Username,
});
user.authenticateUser(authDetails, {
onSuccess: (session) => {
AWS.config.credentials.params.Logins = {
[PoolProviderName]: session.idToken.jwtToken,
};
AWS.config.credentials.expired = true;
AWS.config.credentials.refresh(err => {
authenticatedIdentityId = AWS.config.credentials.identityId;
});
},
});
У меня есть значение для unathenticatedIdentityId и authenticatedIdentityId, но я не вижу способа в API AWS Cognito, чтобы решить, что DISABLED unauthenticatedIdentityId связан с authenticatedIdentityId. И наоборот, я не вижу способа определить, какие идентификаторы были связаны с authenticatedIdentityId. describeIdentity API скажет мне, что unauthenticatedIdentityId есть DISABLED и что у него нет Logins, но он не указывает на связанный authenticatedIdentityId.
Как я могу с только указать значение связанного/отключенного unauthenticatedIdentityId, разрешить значение authenticatedIdentityId?