Я довольно озадачен тем, почему, когда я делаю запрос get с помощью axios, он не может перенаправить на представление, которое я установил в node / express? Я хочу, чтобы он действовал так, как будто я только что набрал / adminPortal в адресной строке браузера? Причина, по которой мне нужно это сделать, заключается в том, что AXIOS добавляет маркер аутентификации пользователя в каждом запросе get. Например, когда пользователь заходит в / adminPortal, серверная сторона проверит, чтобы убедиться, что элемент авторизации в заголовке запроса совпадает с элементом администратора. В тот момент, когда я получаю ответ console.log, это просто набор html, я действительно хочу, чтобы страница перенаправлялась на ответ, как обычно? Это код, который прикрепляет маркер авторизации пользователя на стороне клиента: axios.defaults.headers.common['authorization'] = idToken;
Это код на стороне клиента, выполняющий запрос к странице (/ adminPortal index).
axios({
url: '/adminPortal',
method: 'get'
})
axios.get('/adminPortal', {
// })
.then(function (response) {
response.render();
})
.catch(function (error) {
console.log(error);
})
.finally(function () {
// always executed
});
Это сторона сервера. код MIDDLEWARE, который запускается каждый раз, когда запрашивается / adminPortal GET, чтобы проверить авторизацию для этого. Как только это условие выполнено, он должен вернуть страницу и браузер, чтобы он был перенаправлен на указанную страницу, но это не так: (Я использую Firebase в качестве моего бэкенда)
//Check if request is from User account
isLoggedInAsUser: async function(req, res, next){
req.header('User-Agent')
const idToken = req.headers.authorization;
console.log("idToken:"+idToken);
console.log("TEST"+ JSON.stringify(req.headers));
try {
const decodedToken = await admin.auth().verifyIdToken(idToken);
if(decodedToken){
req.body.uid = decodedToken.uid;
return next();
} else{
return res.status(401).send("You are not autheeeroized");
}
} catch (e){
return res.status(401).send("You are not authroized" + e);
}
}