Jak mogę uzyskać informacje o puli użytkowników według identyfikatora IdentityPool/UserPool (sub)

0

Pytanie

Czy istnieje sposób, aby uzyskać informacje o użytkowniku (atrybuty profilu, itp.), Jeśli mam identyfikator IdentityPool lub identyfikator (sub) użytkownika z AWS SDK?

Przypadek użycia polega na tym, że zachowują pewne informacje, podane przez użytkownika w bazie danych, z kluczem równym identyfikatora użytkownika (sub). Dlatego, kiedy czytam go z bazy danych, chcę odzyskać niektóre informacje o użytkowniku, jego puli dla interfejsu użytkownika aplikacji.

Znalazłem podobne pytanie (Uzyskanie nazwy użytkownika puli użytkowników cognito z identyfikatora identyfikator puli identyfikatorów cognito), ale wydaje się, że odpowiedź koncentruje się na wdrażaniu bez serwera i nadal ma pewne luki.

Z góry dziękuję

amazon-cognito aws-sdk aws-sdk-js
2021-11-22 01:56:13
2

Najlepsza odpowiedź

1

Tak jak masz uprawnienia użytkownika submożna użyć AdminGetUser. Zwraca UserAttributes w basenie.

2021-11-24 06:05:46
0

Myślę, że znalazłem rozwiązanie, w rzeczywistości było na powierzchni.

Mając identyfikator puli użytkowników, można użyć ListUsers połączenie z filtrem sub = \"${userId}\". Klient, który będzie używany, jest CognitoIdentityProviderClientjeśli używany jest JS.

    const client = new CognitoIdentityProviderClient({
        region: REGION,
        credentials: fromCognitoIdentityPool({
            client: new CognitoIdentityClient({ region: REGION }),
            logins: {
                [PROVIDER_ID]: token
            },
            identityPoolId: ID_POOL_ID
        })
    });

    const filter = `sub = \"${userPoolId}\"`;

    const resp = await client.send(new ListUsersCommand({
        UserPoolId: USER_POOL_ID,
        Filter: filter,
        Limit: 1
    }));

Oczywiście, AdminGetUser można również użyć, jak wspomniałem wyżej Улас Келес, jeśli ma to zastosowanie

2021-11-24 13:50:51

W innych językach

Ta strona jest w innych językach

Русский
..................................................................................................................
Italiano
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................