как войти в систему реагировать на родную? - PullRequest
0 голосов
/ 07 марта 2020

Я новичок, чтобы реагировать на родных. Сейчас я работаю над системой входа в систему, где мне дали конечную точку API для входа. Мне нужно получить токен, если логин был действительным. получил 2 функции, login отправляет запрос URL и проверяет статус ответа. displayData получает токен и отображает его на экране.

Есть компонент кнопки, который вызывает displayData, результат, который я получаю в окне предупреждения, по какой-то причине равен нулю. Хотя я ввел значения в теле для loginEmail и loginPass, чтобы убедиться, что есть значения, но я все равно получаю это нулевое сообщение.

alert message

Любые предложения, которые я буду очень признателен.

Функция входа в систему:

login (){
    fetch("http://example/api/login", {

    method: "POST",
    headers: {
      'Accept': 'application/json',
      'Content-Type': 'application/json',
    },

    body: JSON.stringify({  
       loginEmail: 'khaled@gmail.com',
       loginPass: 'khaled',

    })
  })
  let token = responseData.token;
  AsyncStorage.setItem('token',token)
  .then((response) => response.json())
  .then((response)=>{
    if (response.status === 200){
      console.log ("YOU'RE IN")
      response.json();
    } else if(response.status === 400){
      console.log ("Something wrong")
    }
  })
  .done();

  }

displayData:

displayData = async () =>{
  try {
    let token = await AsyncStorage.getItem('token');
    alert(token);
  }
  catch(error){
    alert(error);
  }
}

Ответы [ 2 ]

0 голосов
/ 07 марта 2020

Если вы получаете токен в ответе на API входа в систему, то вы должны установить токен в «then» этого запроса на выборку. Для лучшего понимания я обновляю ваш код. Пожалуйста, проверьте.

login (){
    fetch("http://example/api/login", {

    method: "POST",
    headers: {
      'Accept': 'application/json',
      'Content-Type': 'application/json',
    },

    body: JSON.stringify({  
       loginEmail: 'khaled@gmail.com',
       loginPass: 'khaled',

    })
  })
  .then((response) => response.json())
  .then((response)=>{
    if (response.status === 200){
      console.log ("YOU'RE IN")
      // Set the token here.
      let token = response.token;
      AsyncStorage.setItem('token',token)
      response.json();
    } else if(response.status === 400){
      console.log ("Something wrong")
    }
  })
  .done();

  }
0 голосов
/ 07 марта 2020

используйте syn c и функцию await для получения API.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...