Как реализовать токен jwt и сохранить данные, используя несколько аксиос запросов в ответ - PullRequest
0 голосов
/ 30 марта 2019

, если пользователь дает адрес электронной почты и пароль. он выдаст входные данные: {token: "asdfasd", auth: 'auth "}. если пользователь авторизован, он вызовет второе API, которое выдаст количество данных, в противном случае он вернет unauth

Первоначально я получаю два данных в первый раз, но при обновлении я не вижу свои вторые данные в редукторах, и моя авторизация не авторизована.

compententDidmount(){
 this.props.loginuser()
}

export const loginUser = userData => dispatch => {

axios
 .get('/api/users/login', params:{userdata:userdata})
 .then(res => {

  // Save to localStorage
  const { token } = res.data;

  // Set token to ls
  localStorage.setItem('jwtToken', token);

  // Set token to Auth header
  setAuthToken(token);

  // Decode token to get user data
  const decoded = jwt_decode(token);

  // Set current user
  dispatch(setCurrentUser(decoded));

  if(res.data.authorized === "authorized"){

   axios.get('2nd api', {params:{user:userdata.email}}).then(res=> {

    console.log(res.data) //authorized
})} else {
      console.log(res.data) // unauthorized }
})};

// Check for token
if (localStorage.jwtToken) {

// Set auth token header auth

setAuthToken(localStorage.jwtToken);

// Decode token and get user info and exp

const decoded = jwt_decode(localStorage.jwtToken);

// Set user and isAuthenticated
store.dispatch(setCurrentUser(decoded));}

Мне нужно получить две данные при обновлении браузера. Как я могу решить это?

...