Проблема с axios + React и Redux fornodejs/express + passport + jwt api

Я создал API с маршрутизацией API / логин, у меня есть клиент в папке сервера, так что это может быть URL без http (у меня есть прокси для этого). Проблема в том, когда я отправляю запрос. У меня 500 ошибок в браузере (от catch(error)). Вот мой создатель действий:

export const loginUser = (email,password) => {
  return function(dispatch) {
    // const token = 'my secret token', I dont know where to put it
   axios.post(
       'api/login', {email: email, password: password}
   ).then((response) => dispatch({type: LOGIN_USER, payload:response}))
  .catch((error) => {
  console.log("axios error:",error);
  });
 }
}

В функции отправки в React у меня есть адрес электронной почты и пароль, поэтому я передаю их в действие. Я не уверен, что я должен добавить в axios, полагаю, мне нужно добавить секретный токен из jwt?

Я очень ценю любые советы. Заранее спасибо.

1 ответ

В обычном приложении, когда вы успешно вошли в систему, вы получаете токен доступа... Ошибка 500 означает, что, вероятно, у вас есть проблема с backand(на мой взгляд).

я покажу вам мои примеры логин вспомогательная функция

function signin(email, password) {
    const user = axios({
        method: 'post',
        url: 'url',
        data: {
            email,
            password,
        },
        responseType: 'json',
    });
    return user;
}

это создатель действия

export const login = (email, password) => async (dispatch, getState, api) => {
    dispatch(request());
    try {
        const res = await api.signin(email, password);
        localStorage.setItem('token', res.data.token);
        return dispatch(success(res.data.user));
    } catch (error) {
        dispatch(failure(error.response.data.message));
    }
};

а также у меня есть еще одна функция, которая имеет заголовок аутентификации.
истек каждый запрос на проверку чека или нет мой токен

function getProfile(token) {
    const user = axios({
        method: 'get',
        url: 'url',
        headers: {
            Authorization: `Bearer ${token}`,
        },
        responseType: 'json',
    });

    return user;
}

и впереди у меня есть функция обработчика ошибок, которая проверяет, возвращает ли ошибку 401, перенаправляя на страницу входа

Другие вопросы по тегам