введите описание изображения здесь Я хочу получить данные профиля пользователя после входа в систему пользователя. Я могу сохранить токен пользователя с ключом isLoggedIn, но не могу сохранить токен в этом коде. Я просто Я хочу получить данные URL с помощью токена пользователя, но при нажатии на кнопку «Профиль пользователя» появляется предупреждение «Недопустимый токен», поэтому я не могу получить доступ к атрибутам данных URL. Пожалуйста, проверьте мой код.
import React, { Component } from 'react';
import { StyleSheet, View, Text, SafeAreaView, Image,
ScrollView,AsyncStorage,TouchableOpacity,ActivityIndicator,
} from 'react-native';
class UserProfile extends Component {
constructor(props) {
super(props);
this.state = {
dataSource : [] ,
isLoading : true,
};
}
componentDidMount() {
this.fetchUserData()
}
async fetchUserData() {
const DEMO_TOKEN = await AsyncStorage.getItem("isLoggedIn");
if (DEMO_TOKEN != null) {
try {
console.log('tokenresponse', DEMO_TOKEN)
const url = "http://104.197.28.169:3000/userProfile";
const header = {
method: "GET",
headers: {
Authorization: " Bearer" + DEMO_TOKEN,
},
};
const response = await fetch(url, header);
const jsonResponse = await response.json();
console.log('gerwgewrhe',jsonResponse);
this.setState({
dataSource: jsonResponse,
isLoading: false,
});
} catch (error) {
console.log(error);
}
}
}
render() {
{
return (
this.state.isLoading
?
<View style={{ flex: 1, justifyContent: 'center', alignItems:
'center' }}>
<ActivityIndicator size="large" color="#330066" />
</View>
:
<View style={styles.container}>
<View style={styles.name}>
<Text style={styles.label}>Employee ID:</Text>
<Text style={styles.Shable}>
{this.state.dataSource.data.empId}
</Text>
</View>
<View style={styles.name}>
<Text style={styles.label}>First Name:</Text>
<Text style={styles.Shable}>
{this.state.dataSource.data.firstName}
</Text>
</View>
<View style={styles.name}>
<Text style={styles.label}>Last Name:</Text>
<Text style={styles.Shable}>
{this.state.dataSource.data.lastName}
</Text>
</View>
<View style={styles.name}>
<Text style={styles.label}>Gender:</Text>
<Text style={styles.Shable}>
{this.state.dataSource.data.gender}
</Text>
</View>
<View style={styles.name}>
<Text style={styles.label}>Mobile Number:</Text>
<Text style={styles.Shable}>
{this.state.dataSource.data.contactNo}
</Text>
</View>
</View>
);
}
}
}
export default UserProfile ;
Вот мои данные URL.
{
"message": "user profile",
"data": {
"id": 39,
"location": "Bikaner",
"empId": "Dd1",
"firstName": "Divyanshu",
"lastName": "Gahlot",
"dateOfBirth": "2020-04-16",
"gender": "Male",
"maritalStatus": "Unmarried",
"contactNo": 9864676468,
"residenceAddress": "Jaipur",
"emailId": "divyanshu@gmail.com",
}
"status": 1
}
This is my login and Authloading Screen.
CheckTextInput = async () => {
await fetch('http://104.197.28.169:3000/auth/login?', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
email: this.state.TextInputEmail,
password: this.state.TextInputPassword,
})
}).then((response) => response.json())
.then((responseJson) => {
if(responseJson.message === "user logged in successfully")
{
alert('User login Successfully')
console.log('Token' , responseJson.token
const Token = responseJson.token
AsyncStorage.setItem('isLoggedIn',responseJson.token);
this.props.navigation.navigate('drawernavigation');
}
else{
alert(responseJson.message);
}
}).done()
}
class AuthLoadingScreen extends Component {
constructor(props) {
super(props);
this.loadData();
}
render() {
return (
<View style={{ flex: 1, justifyContent: 'center', alignItems: 'center', }}>
<ActivityIndicator />
<StatusBar barStyle="default" />
</View>
);
}
loadData = async () => {
const isLoggedIn = await AsyncStorage.getItem('isLoggedIn')
this.props.navigation.navigate(isLoggedIn != 'token' ? 'loginnavigator' :
'drawernavigation')
}
}
export default createAppContainer(createSwitchNavigator(
{
AuthLoading: AuthLoadingScreen,
loginnavigator: AppNavigator,
drawernavigation : NaviNavi,
forgotstack: AuthStack,
monthlyattendance: attendacnemonthly,
},
)
);