У меня есть система авторизации JWT. При входе в систему я помещаю токен JWT с сервера в локальное хранилище.
Также у меня есть TariffsApiComponent
, который вызывает getTariffs
thunk в TariffsReducer
.
Этот блок делает запрос http для тарифов, используя этот токен JWT в заголовках, но затем, когда я проверяю ответ от сервера, я не получаю resultCode = 0 (успешный запрос).
Iпытался проверить, что не так с моим токеном на сервере, но там я вижу это.
Также должен сказать, что если я перезагружаю страницу, не удаляя токен из локального хранилища, это работает!
Компонент
TariffsContainer.jsx
import React, { Component } from "react";
import { connect } from "react-redux";
import Tariffs from "./Tariffs";
import { changeTariffStatus, getTariffs } from "../../../redux/tariffsReducer";
import withAuthRedirect from "../../../hoc/withAuthRedirect";
import { compose } from "redux";
class TariffsApiComponent extends Component {
componentDidMount() {
this.props.getTariffs();
}
render() {
return (
<Tariffs
tariffId={this.props.tariffId}
tariffs={this.props.tariffs}
changeTariffStatus={this.props.changeTariffStatus}
/>
);
}
}
...
tariffsReducer.js
...
export const setTariffs = (tariffs, tariffId) => ({
type: SET_TARIFFS,
tariffs,
tariffId
});
export const getTariffs = () => dispatch => {
getTariffsAPI().then(response => {
if (response.resultCode === 0) {
let { tariffs, tariffId } = response;
dispatch(setTariffs(tariffs, tariffId));
}
});
};
...
запросы
...
const instance = axios.create({
headers: {
"x-access-token": localStorage.getItem("token")
}
});
export const getTariffsAPI = () => {
return instance
.get(`http://localhost:1337/tariffs`)
.then(response => {
return response.data.data});
};
...
промежуточное ПО
let checkToken = (req, res, next) => {
let token = req.headers["x-access-token"] || req.headers["authorization"];
if (token.startsWith("Bearer ")) {
token = token.slice(7, token.length);
}
console.log(req.headers["x-access-token"]);
if (token) {
jwt.verify(token, config.secret, (err, decoded) => {
if (err) {
return res.json({
success: false,
message: "Token is not valid"
});
} else {
req.decoded = decoded;
next();
}
});
} else {
return res.json({
success: false,
message: "Auth token is not supplied"
});
}
};
Ошибка
что я вижу на сервере после входа в систему