Как убедиться, что модуль Auth настроен с действительным идентификатором пула пользователей Cognito? - PullRequest
0 голосов
/ 15 апреля 2019

Я пытаюсь добавить аутентификацию в приложение React Native с помощью React Native Navigation & AWS.Я использую AWS Amplify для подключения к AWS и Amazon Cognito для управления пользователями.

Когда я запускаю приложение, я получаю следующее сообщение:

AuthClass - Не удается получить текущийпользователь, потому что пользовательский пул отсутствует.Убедитесь, что модуль Auth настроен с допустимой ошибкой идентификатора пула пользователей Cognito: не аутентифицирован

Я пытаюсь придерживаться этого урока: https://medium.com/react-native-training/react-native-navigation-v2-by-wix-getting-started-7d647e944132 (часть 1)

https://medium.com/@dabit3/user-authorization-with-react-native-aws-using-react-native-navigation-v2-by-wix-220ecb536b56 (часть 2)

https://github.com/dabit3/react-native-navigation-v2 (окончательный код урока, которому я следую)

Вот мое приложение .js

import React from 'react'
import Initializing from './src/Components/Initializing'

import Amplify from 'aws-amplify';
import aws_exports from './aws-exports';
//import { withAuthenticator } from '../node_modules/aws-amplify-react';
Amplify.configure(aws_exports);

export default class App extends React.Component {
  render() {
    return (
      <Initializing/>
    )
  }
}

Я пытался следовать приведенному здесь предложению: https://stackoverflow.com/a/54360805/9623806

Обратите внимание, что я не импортировал компоненты aws-усиление-реагировать, так как я не импортируюиметь модуль "aws-усиление-реагировать", только "aws-усиление" или "aws-усиление-реагировать-нативный"

Вот Initializing.js

import React from 'react'
import {
  View,
  Text,
  StyleSheet,
  AsyncStorage
} from 'react-native'

import { goToAuth, goHome } from '../Navigation/Navigation'

import { Auth } from 'aws-amplify'

export default class Initializing extends React.Component {
  async componentDidMount() {
    try {
      const user = await Auth.currentAuthenticatedUser()
      console.log('user: ', user)
      if (user) {
        goHome()
      } else {
        goToAuth()
      }
    } catch (err) {
      console.log('error: ', err)
      goToAuth()
    }
  }

Когда я запускаю приложение, страница отображается правильно, но я получаю это сообщение об ошибке во всплывающем окне:

[Отклонение необработанного обещания: TypeError: undefined не является объектом (оценивая это.nativeCommandsModule.setRoot ')] - node_modules \ реагировать-нативно-навигация \ lib \ dist \ adapters \ NativeCommandsSender.js: 9: 41 в setRoot - node_modules \ реагировать-нативно-навигацияn \ lib \ dist \ commands \ Commands.js: 27: 57 в setRoot * src \ Navigation \ Navigation.js: 3: 49 в goToAuth * src \ Components \ Initializing.js: 25: 6 в componentDidMount $

Не знаю, связано ли это с тем, что отсутствует пул пользователей.

Вот мой Navigation.js

import { Navigation } from 'react-native-navigation'

export const goToAuth = () => Navigation.setRoot({
  root: {
    bottomTabs: {
      id: 'BottomTabsId',
      children: [
        {
          component: {
            name: 'LoginScreen',
            options: {
              bottomTab: {
                fontSize: 12,
                text: 'Sign In'
              }
            }
          },
        },
        {
          component: {
            name: 'SignUpScreen',
            options: {
              bottomTab: {
                text: 'Sign Up',
                fontSize: 12
              }
            }
          },
        },
      ],
    }
  }
})

export const goHome = () => Navigation.setRoot({
  root: {
    stack: {
      id: 'App',
      children: [
        {
          component: {
            name: 'Search',
          }
        }
    ],
    }
  }
})

Спасибо за потраченное время!

Поскольку это мое первое собственное приложение, я мог забыть о некоторых полезных файлах, поэтому дайте мне знать, если мне нужно отредактировать свой вопрос.

...