Я делаю вызов axios, чтобы проверить существующий токен JWT.Если он существует, я бы хотел, чтобы моя панель администратора была перенаправлена на страницу входа.К настоящему моменту у меня есть мой бэкэнд, подобный этому:
//The admin panel page. check for valid JWT token, otherwise prompt to login page
router.use("/", (req,res)=>{
var token = req.headers.authorization;
if (token && token.startsWith("Bearer ")) {
// Remove Bearer from string
token = token.slice(7, token.length);
}
if (token) {
jwt.verify(token, "secret", (err, decoded) => {
if (err) {
res.sendFile(path.join(__dirname , '../views/login.html'));
} else {
User.findOne({
_id: decoded.id
}).then(function (user) {
res.sendFile(path.join(__dirname , '../views/admin.html'));
})
}
});
} else {
res.sendFile(path.join(__dirname , '../views/login.html'));
}
});
, который работает нормально, но в моем интерфейсе результат, который я получаю в axios, является объектом, и страница не отображается, но ответ сохраняется в памяти.
Object { data: "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n
Весь HTML-документ, который я отправляю, находится в поле данных ответа.
Вот мой аксиальный вызов:
function onPage(){
if(localStorage.getItem('token')){
const Url = "http://127.0.0.1:8000/admin/";
const config = {
headers: {
"Content-Type": "application/x-www-form-urlencoded",
"Authorization": "Bearer " + localStorage.getItem('token')
}
};
axios.post(Url, {}, config).then(function (response) {
console.log(response);
})
.catch(error => {});
}
}