색인에 탐색 컴포넌트가있는 앱을 생성하고 있습니다. 시작할 때 로그인 페이지로 자동 이동합니다. 이 로그인 페이지에서 사용자에게 인증 토큰이 제공됩니다. 이 토큰을 색인으로 다시 가져와 나머지 응용 프로그램에서 사용할 수 있습니까? 감사!React Native, 인증 토큰을 인덱스로 전달
index.android.js
//lots of imports
export default class CBURecCenterApp extends Component {
constructor(){
super()
this.renderScene = this.renderScene.bind(this)
}
renderScene(route, navigator){
switch(route.name){
case 'Home':
return <HomePage navigator={navigator} />
break;
case 'Calendar':
return <CalendarPage navigator={navigator} />
break;
case 'Events':
return <EventsPage navigator={navigator} />
break;
case 'Discover':
return <DiscoverPage navigator={navigator} />
break;
case 'Profile':
return <ProfilePage navigator={navigator} />
break;
case 'Settings':
return <SettingsPage navigator={navigator} />
break;
case 'Info':
return <InfoPage navigator={navigator} />
break;
case 'Login':
return <LoginPage navigator={navigator} />
break;
case 'Register':
return <RegisterPage navigator={navigator} />
break;
default:
return <ErrorPage navigator={navigator} />
}
}
render() {
return (
<Navigator
initialRoute={{name: 'Login'}}
renderScene={this.renderScene}
/>
);
}
}
AppRegistry.registerComponent('CBURecCenterApp',() => CBURecCenterApp);
LoginPage.js
import React, { Component, PropTypes } from 'react';
import { View, Text, TextInput, StyleSheet, TouchableHighlight} from 'react- native';
import Api from '../Utility/Api';
export default class LoginPage extends Component {
constructor(props) {
super(props);
this.state = {
userName: null,
password: null
};
}
navigate(name){
this.props.navigator.push({
name
})
}
submitLogin(){
response: Api.login(
this.state.userName,
this.state.password
);
if(response.status === 200){
//pass authentication token to index.android.js
//navigate to home page
}
else{
//invalid username/password handling code
}
}
render(){
return (
<View>
<TextInput
style={styles.textField}
onChangeText={(userName) => this.setState({userName})}
value={this.state.userName}
keyboardType = {'email-address'}
autoCorrect = {false}
placeholder = {'CBU Email'}
/>
<TextInput
style={styles.textField}
onChangeText={(password) => this.setState({password})}
value={this.state.password}
keyboardType = {'email-address'}
autoCorrect = {false}
placeholder = {'password'}
secureTextEntry={ true }
/>
</View>
)
}
}
const styles = StyleSheet.create({
textField: {
height: 40,
borderColor: 'gray',
borderWidth: 1
}
})