4 votes

Comment stocker un accesstoken de l'API vers le stockage asynchrone ?

Erreur AsyncStorage : Accesstoken n'est pas défini

Comment définir l'accesstoken ? J'utilise php comme backend api et j'effectue un enregistrement avec accesstoken à stocker dans Asyncstorage.

async storeToken(accesstoken) {
    try {
      await AsyncStorage.setItem(AccessToken, accesstoken);
    } catch (error) {
      console.log('AsyncStorage error: ' + error.message);
    }
}
  userRegister = () =>{
    const {username} = this.state;
    const {password} = this.state;

    if(username=="" || password==""){
      alert("Please fill out all fields");
    }
    // else if (password!=cpassword) {
    //     alert("Passwords do not match.");
    // }
    else{
    fetch('http://192.168.01.1/test/register.php', {
      method: 'post',
      header:{
        'Accept': 'application/json',
        'Content-type': 'application/json'
      },
      body:JSON.stringify({
        username: username,
        password: password,

      })
    })
    .then((response) => response.json())
      .then((responseData) =>{
      // how to define accesstoken
      //this.storeToken('accessToken',JSON.stringify(results));
     //if using in this  then same error
        this.storeToken('accesstoken',responseData.accesstoken)
        if(responseData == 'User Registered Successfully'){
          Alert.alert(
            'Success',
            'User Registered Successfully',
            [
             // {text:'ok', onPress: () =>  this.props.navigation.goBack() }
            ]
          );
          //this.props.navigation.goBack()
        }else{
          alert(responseJson);
        }
      })
      .catch((error)=>{
        console.log(error);
      });
  }
}

Comment appeler un accesstoken à définir dans une fonction ? Si l'on utilise une fonction await pour accéder à l'accesstoken, l'erreur suivante apparaît : await n'est pas une fonction.

3voto

Shyam Kumar Points 92
    userRegister = () =>{
        const {username, password } = this.state;

        if(username=="" || password==""){
          alert("Please fill out all fields");
        }
        // else if (password!=cpassword) {
        //     alert("Passwords do not match.");
        // }
        else{
        fetch('http://192.168.01.1/test/register.php', {
          method: 'post',
          header:{
            'Accept': 'application/json',
            'Content-type': 'application/json'
          },
          body:JSON.stringify({
            username: username,
            password: password,

          })
        })
        .then((response) => {
          // console the response here, if it's containing accesstoken then pass
 it in your storeToken function like below
            this.storeToken(response.accesstoken)
            //after this do rest of your steps
          })
          .catch((error)=>{
            console.log(error);
          });
      }
    }

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X