Как правильно получать и отправлять token в axios?

Всем доброго времени суток.Подскажите пожалуйста, что я делаю не так ? Несколько часов уже сижу, все перепробовал ..
Получаю ошибку Error: Request failed with status code 401.

Token получил( уже стал сомневаться что правильно..) , теперь когда делаю запрос на сервер для получения данных, и вставляю в header token , получаю 401

Класс по работе с api
import axios from 'axios';
import AsyncStorage from '@react-native-community/async-storage';

export default class City {
  //Auth and get token
  getToken = async params => {
    const req = await axios.post(
      'https://api',
      params,
    );

    const token = await JSON.stringify(req.data.access_token);
    await AsyncStorage.setItem('userToken', token);
    return token;
  };

  // get data Account
  getInfo = async token => {

    const req = await axios.get(
      'http://api',
      {headers: {Authorization: `Bearer ${token}`}},
    );

    const info = await JSON.stringify(req.data);
    return info;
  };
}


// функция которая делает запрос на сервер и получает token
import City from '../../api';

export default class Login extends React.Component{

city = new City();

onSubmit = async () => {

    const params = new URLSearchParams();
    params.append('username', email);
    params.append('password', password);

    this.city
      .getToken(params)
      .then(item => {
        console.log(item);
      })
      .catch(error => {
        console.log(`${error} -ERROR`);
      });
  };

}


// функция которая делает запрос на сервер для получения данных
import City from '../../api';


export default class Main extends React.Component{

city = new City();

  componentDidMount() {
    this.asyncData();
  }

  asyncData = async () => {
    const {authUser} = this.props;

    const token = await AsyncStorage.getItem('userToken');
    await authUser(token);
    this.getInfo(token);
  };

  getInfo = token => {
    this.city
      .getInfo(token)
      .then(item => {
        console.log(`GET INFO ------------${item}`);
      })
      .catch(error => {
        console.log(`ERROR -------------${error}`);
      });
  };
}
  • Вопрос задан
  • 5353 просмотра
Решения вопроса 2
const req = await axios.get(
  'http://api',
  { headers }, // <-- скобки
 );
Ответ написан
jdava
@jdava
Node, Vue, JavaScript,React
Может просто вы будете токен пихать в Хидер не в token а в Authorization?
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы