Проблема с 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, перенаправляя на страницу входа