Как получить токен доступа после входа в учетную запись из JSON API в реагирующем - PullRequest
0 голосов
/ 20 апреля 2020

введите описание изображения здесь Я хочу получить данные профиля пользователя после входа в систему пользователя. Я могу сохранить токен пользователя с ключом 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,
  },
  )
 );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...