Я пытаюсь подключиться к своему AWS AppSync API с помощью простого клиента Apollo, но я не уверен, как правильно структурировать заголовок аутентификации.
До сих пор я следовал документации по аутентификации заголовка здесь: https://www.apollographql.com/docs/react/recipes/authentication.html
И есть этот код, который я адаптировал для включения токена в службу аутентификации Amplify, но он возвращает ошибку 401:
const httpLink = createHttpLink({
uri: '[API end point address]/graphql'
});
const authLink = setContext((_, { headers }) => {
const token = async () => (await Auth.currentSession()).getAccessToken().getJwtToken();
return {
headers: {
...headers,
authorization: token ? `Bearer ${token}` : ""
}
}
})
const client = new ApolloClient({
link: authLink.concat(httpLink),
cache: new InMemoryCache()
})
Единственная документация, которую я могу найти по этому поводу, не содержит технических инструкций:
При использовании Amazon Cognito User Pools вы можете создавать группы, которые пользователи
принадлежать. Эта информация закодирована в токене JWT, который
приложение отправляет в AWS AppSync в заголовке авторизации, когда
отправка операций GraphQL.
Отсюда: https://docs.aws.amazon.com/appsync/latest/devguide/security.html
Я знаю, что токен - это хорошо, потому что, если я использую API-интерфейс AppSync JavaScript, он работает. Могу ли я пойти куда-нибудь, чтобы узнать, как этого добиться, или кто-то знает, как?
Редактировать:
Пока я пытался изменить эту строку:
authorization: token ? `Bearer ${token}` : ""
Следующие попытки:
token
jwtToken: token
authorization: token
Authorization: token
Ничто из этого не сработало.