Я пытаюсь реализовать защищенные маршруты, используя polka js. Я попытался реализовать это с помощью промежуточного программного обеспечения, но я продолжаю получать несанкционированный доступ даже для незащищенного маршрута.
const polka = require('polka');
const send = require('@polka/send-type');
const app = polka();
app.get('/un-protected', (req, res) => {
return send(res, 200, {
msg: 'Unprotected route',
});
});
const auth = false;
app
.use((req, res, next) => {
if (auth) {
next();
} else {
return send(res, 401, {
errors: {
msg: 'unauthorized',
},
});
}
})
.get('/protected', (req, res) => {
return send(res, 200, {
msg: 'Protected route',
});
});
const PORT = process.env.PORT || 8080;
app.listen(PORT, () => console.info(`Server running on port ${PORT}`));
Ожидаемое поведение заключается в том, что только маршрут «/protected» должен отображать несанкционированное сообщение, но в настоящее время даже для маршрута «/un-protected» несанкционированное сообщение продолжает появляться.
Проверка аутентификации должна располагаться между указанным маршрутом и действием при переходе на защищенный маршрут.
app.get('/un-protected', (req, res) => {
return send(res, 200, {
msg: 'Unprotected route',
});
});
const auth = false;
const checkAuth = (req, res, next) => {
if (auth) {
next();
} else {
return send(res, 401, {
errors: {
msg: 'unauthorized',
},
});
}
}
app
.get('/protected', checkAuth, (req, res) => {
return send(res, 200, {
msg: 'Protected route',
});
});