Я пытаюсь добавить вход / выход в свое собственное приложение реакции, используя 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>
);
}
}