Конечная точка Cognito '/oauth2/token' не возвращает 'id_token' для предоставления кода авторизации с PKCE, хотя в документации говорится, что он будет возвращен (Ссылка ). Он также должен вернуть id_token. Это нормально или мне нужно настроить больше? Я добавил содержимое проблемы git, открытой мной ниже, если это полезно ( Issue 7393)
Воспроизвести Шаги для воспроизведения поведения:
Ожидаемое поведение Он также должен возвращать id_token
Фрагмент кода
import React, {useEffect, useState} from 'react';
import { Amplify, Auth, Hub } from 'aws-amplify';
import {AmplifyConfig} from '../../config/amplifyConfig';
Amplify.configure({
Auth: AmplifyConfig.auth
});
const AuthorizePage = (props: any) => {
const [user, setUser] = useState(null);
useEffect(() => {
Hub.listen('auth', ({ payload: { event, data } }) => {
switch (event) {
case 'signIn':
case 'cognitoHostedUI':
getUser().then(userData => setUser(userData));
break;
case 'signOut':
setUser(null);
break;
case 'signIn_failure':
case 'cognitoHostedUI_failure':
console.info('Sign in failure', data);
break;
}
});
getUser().then(userData => setUser(userData));
}, []);
function getUser() {
return Auth.currentAuthenticatedUser()
.then(userData => userData)
.catch(() => console.info('Not signed in'));
}
return (
<div className = "menu-card-filter--items" data-id = "aperitif">
<span>
Authorizing
</span>
</div>
)
}
export default AuthorizePage;
Скриншоты
Что настроено?
Auth: {
mandatorySignIn: true,
region: "******-*",
userPoolId: "**-******-*_*******",
userPoolWebClientId: "**********************",
oauth: {
domain: "**********************.amazoncognito.com",
scope: [
"phone",
"email",
"profile",
],
redirectSignIn: "http://localhost:3000/authorize",
redirectSignOut: "http://localhost:3000/logout",
responseType: "code"
}
}
Добавьте область «openid» в список областей в вашей конфигурации аутентификации.
Область openid возвращает все пользовательские атрибуты в токене ID, которые доступны для чтения клиентом. Токен ID не возвращается, если область openid не запрошена клиентом.
https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-app-idp-settings.html здесь
Добавление «openid» в область действия сработало. Большое спасибо.