Я пытаюсь создать приложение, которое использует пользовательские пулы Cognito для аутентификации пользователя, а затем отправляет запросы api в таблицу DynamoDB через graphQL.
Пользователь аутентификации / регистрации работает правильно, однако я получаю ошибку 401 при попытке запроса таблицы данных. В сообщении указано «Отсутствует заголовок авторизации»
Я видел в аналогичном посте, что токен аутентификации должен автоматически заполняться заголовками запросов, но это не происходит для меня. Я также видел, что Amplify создал функцию для пользовательских заголовков graphql. Я также пытался это сделать, но все равно получаю ту же ошибку «Отсутствует заголовок авторизации».
Есть предложения?
aws_appsync_graphqlEndpoint:'',
aws_appsync_region:'',
aws_appsync_authenticationType:'AMAZON_COGNITO_USER_POOLS',
graphql_headers: async () => ({
'My-Custom-Header': cognitoUser
})
}
Это в моем файле конфигурации / экспорта для увеличения ---- Amplify.configure (config)
if (cognitoUser != null) {
cognitoUser.getSession((err, session) => {
if (err) {
console.log(err);
} else if (!session.isValid()) {
console.log("Invalid session.");
} else {
console.log( session.getIdToken().getJwtToken());
}
});
} else {
console.log("User not found.");
}
console.log(cognitoUser)
Amplify.configure(config)
const client = new AWSAppSyncClient({
disableOffline: true,
url: config.aws_appsync_graphqlEndpoint,
region: config.aws_appsync_region,
identityPoolId: config.aws_cognito_identity_pool_id,
userPoolId: config.aws_user_pools_id,
userPoolWebClientId: config.ws_user_pools_web_client_id,
auth: {
type: config.aws_appsync_authenticationType,
jwtoken: async () =>
(await Auth.currentSession()).getIdToken().getJwtToken(),
apiKey: config.aws_appsync_apiKey
}
});```
This is my client settings in my index.js folder
I apologize if I missed something blatant. I am new to backend and am having trouble with getting this to work.
I have only gotten it to work when using API_Key auth.