Ошибка при попытке добавить аутентификацию Okta в приложение React Native - PullRequest
0 голосов
/ 30 марта 2019

Я пытаюсь добавить вход / выход в свое собственное приложение реакции, используя Okta API на Snack , но я получаю следующую ошибку:

[Устройство] Не удается найти модуль "." Оценка модуль: //@okta/okta-react-native.js Оценка module: //api/TokenClient.js.js Оценочный модуль: //App.js.js
Загрузочный модуль: //App.js

Код для TokenClient.js такой:

import TokenClient from '@okta/okta-react-native';

var tc = new TokenClient({
  issuer: 'https://XXXXXXXXX.okta.com/oauth2/default',
  client_id: 'XXXXXXXXXXXXXXXXX',
  scope: 'openid profile',
  redirect_uri: __DEV__
    ? 'exp://localhost:19000/+expo-auth-session'
    : 'com.okta.XXXXXXXXX:/callback',
});

export default tc;

Я использую его в App.js так:

import * as React from 'react';
import { Text, View, StyleSheet, Button } from 'react-native';
import { Constants } from 'expo';
import { Card } from 'react-native-paper';

import tokenClient from './api/TokenClient';

export default class App extends React.Component {
  state = {
    authentication: false,
  };

  checkAuthentication = async () => {
    const { authentication } = this.state;
    const authenticated = await tokenClient.isAuthenticated();
    if (authenticated !== authentication) {
      this.setState({ authentication: authenticated });
    }
  };

  async componentDidMount() {
    await this.checkAuthentication();
  }

  logIn = async () => {
    await tokenClient
      .signInWithRedirect()
      .then(res => {
        console.log('Success', res);
      })
      .catch(err => {
        console.log('Error', err);
      });
    this.checkAuthentication();
  };

  logOut = async () => {
    await tokenClient.signOut();
    this.checkAuthentication();
  };

  render() {
    const { authentication } = this.state;
    return (
      <View style={styles.container}>
        {authentication ? (
          <View>
            <Text style={styles.paragraph}>Welcome!</Text>
            <Button
              title="Sign Out"
              onPress={async () => {
                this.logOut();
              }}
            />
          </View>
        ) : (
          <View style={{ padding: 100 }}>
            <Button
              title="Sign In"
              onPress={async () => {
                this.logIn();
              }}
            />
          </View>
        )}
        <Card>
          <AssetExample />
        </Card>
      </View>
    );
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...