gpt4 book ai didi

node.js - 如何在 polka js 中保护路由

转载 作者:搜寻专家 更新时间:2023-10-31 23:44:18 25 4
gpt4 key购买 nike

我正在尝试使用 polka js 实现 protected 路由。我尝试使用中间件来实现它,但即使对于未 protected 路由,我也一直未获得授权。

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.log(`Server running on port ${PORT}`));

预期的行为是只有“/protected”路由应该显示未经授权的消息,但目前即使对于“/un-protected”路由,未经授权的消息也会不断弹出。

最佳答案

认证检查应该放在指定路由和去 protected 路由的 Action 之间。

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',
});
});

关于node.js - 如何在 polka js 中保护路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56222157/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com