Ошибки AWS Appsync 401 и 403 в React Native - PullRequest
0 голосов
/ 01 июля 2018

Я выдернул свои волосы, пытаясь установить Appsync и Cognito в моем приложении React Native.

Я пробовал два следующих способа:

Amplify.configure(config);

OR

Amplify.configure({
  Auth: {
    region: config.aws_cognito_region, // REQUIRED - Amazon Cognito Region
    userPoolId: config.aws_user_pools_id, // OPTIONAL - Amazon Cognito User Pool ID
    userPoolWebClientId: config.aws_user_pools_web_client_id, // User Pool App Client ID
  },
});

И

const client = new AWSAppSyncClient({
  url: appSyncConfig.graphqlEndpoint,
  region: appSyncConfig.region,
  auth: {
    type: appSyncConfig.authType,
    jwtToken: async () => (await Auth.currentSession()).getIdToken().getJwtToken(),
  },
});

OR

const client = new AWSAppSyncClient({
  url: appSyncConfig.graphqlEndpoint,
  region: appSyncConfig.region,
  auth: {
    type: appSyncConfig.authType,
    apiKey: appSyncConfig.apiKey,
  },
});

Я также следовал этим двум учебникам Работа с пользователем auth , Создание приложения для заметок .

В обоих случаях я получаю следующую ошибку в GraphQL без описания:

Error: Network error: Response not successful: Received status code

Это в то время как в Тип авторизации Amazon Cognito User Pool. Я также попробовал AWS Identity and Access Management (IAM), но это дает мне ошибку 403. Может кто-нибудь указать мне направление, где я могу отладить это дальше?

Ответы [ 2 ]

0 голосов
/ 08 января 2019

У меня есть следующий код, и он работает для меня:

import Amplify, { Auth } from 'aws-amplify';
import API, { graphqlOperation } from '@aws-amplify/api'

window.LOG_LEVEL = 'DEBUG';
Amplify.configure({
  Auth: {
    "identityPoolId":'ap-southeast-1:xxxxxx',
    "mandatorySignIn": false,
    "region": "ap-southeast-1",
    "userPoolId": "ap-southeast-1_xxxx",
    "userPoolWebClientId": "xxxxxxx"
  },
  API:{
    "aws_appsync_graphqlEndpoint": 'https://xxxx.ap-southeast-1.amazonaws.com/graphql',
    "aws_appsync_region": 'ap-southwest-1',
    "aws_appsync_authenticationType": 'AMAZON_COGNITO_USER_POOLS',
    "aws_appsync_apiKey": 'null',
  }

});
0 голосов
/ 05 августа 2018

Возможно, это вызвано опечаткой в ​​прочитанной вами документации / статье. Попытка замены:

auth: {
type: appSyncConfig.authType,
apiKey: appSyncConfig.apiKey
}

с:

auth: {
type: appSyncConfig.authenticationType,
apiKey: appSyncConfig.apiKey
}
...