Вернуть аудит из результатов AWS Cognito refresh_token - PullRequest
0 голосов
/ 08 января 2019

Я использую AWS Cognito для аутентификации пользователей.

Я создал сервер с использованием Kosjs и использовал библиотеку koa-jwt, чтобы проверить, есть ли у пользователей действительные id_tokens.

koa-jwt ожидает свойство aud в id_token, которое изначально существует в id_token, возвращенном AWS Cognito.

Но когда я использую токен обновления для получения нового токена, новый токен содержит client_id вместо aud .

Из-за этого koa-jwt больше не проверяет id_token.

Есть ли способ получить последовательный результат от AWS Cognito?

Это пример id_token после входа в систему:

{
  "sub": "1Xfe6c44-XXXX-4cbf-9fb2-2778a1b0e5be",
  "email_verified": true,
  "iss": "https://cognito-idp.ap-northeast-1.amazonaws.com/ap-northeast-1_xxxOUKTJu",
  "phone_number_verified": true,
  "cognito:username": "oqtz@n.spamtrap.co",
  "given_name": "Some1",
  "aud": "xxxxf9f0lmr1q6ni2c09umdds",
  "event_id": "9cf03730-xxxx-11e9-a89f-67080ff7c936",
  "token_use": "id",
  "auth_time": 1546931916,
  "phone_number": "+16806666986",
  "exp": 1546935516,
  "iat": 1546931916,
  "family_name": "Some2",
  "email": "oqtz@n.spamtrap.co"
}

и это пример id_token, возвращаемого refresh_token:

{
  "sub": "16fe6c44-xxxx-xxxx-9fb2-2778a1b0e5be",
  "event_id": "9cf03730-xxxx-xxxx-a89f-67080ff7c936",
  "token_use": "access",
  "scope": "aws.cognito.signin.user.admin",
  "auth_time": 1546931916,
  "iss": "https://cognito-idp.ap-northeast-1.amazonaws.com/ap-northeast-1_xxxxxKTJu",
  "exp": 1546939290,
  "iat": 1546935690,
  "jti": "6fab7b58-xxxx-xxxx-a339-ddb6467e2d4c",
  "client_id": "xxxxx9f0lmr1q6ni2c09umdds",
  "username": "oqtz@n.spamtrap.co"
}

1 Ответ

0 голосов
/ 03 февраля 2019

Я не полностью протестировал вещи с обновлением, но я быстро освоил основы, следуя примеру в нижней части этого раздела в файле readme koa-jwt.

const { koaJwtSecret } = require('jwks-rsa');

    app.use(jwt({   
        secret: <any> koaJwtSecret({
            jwksUri: `https://cognito-idp.${config.userPoolRegion}.amazonaws.com/${config.userPoolId}/.well-known/jwks.json`,
            cache: true,
            cacheMaxEntries: 5,
            cacheMaxAge: 36000000 ///10 hr 
        }) 
    }));
...