【发布时间】:2023-04-03 19:10:01
【问题描述】:
我有一个用 node/express 编写的网络服务器,它使用 passport 通过 JSON Web 令牌 (JWT) 对用户进行身份验证。
对于常规的 HTTP 方法,这是我使用的:
app.get('/api/stuff', isLoggedIn(), (req, res) => {
//get stuff
res.send( whatever );
});
isLoggedIn 这个函数在哪里:
function isLoggedIn() {
return passport.authenticate('local-jwt', { session: false });
}
身份验证本身由护照中的'local-jwt' 配置使用JWTStrategy 对象处理,它按预期工作。
现在我需要向这个应用程序添加网络套接字。我正在使用 ws 库。这是我目前所拥有的:
const wss = new WebSocket.Server({
port: 8080,
verifyClient: async (info, done) => {
// ???
done( result );
}
});
wss.on('connection', ws => {
// web socket events
});
如何使用护照身份验证仅允许具有正确令牌的客户端连接到 Web 套接字服务器?
【问题讨论】:
标签: node.js express websocket jwt passport.js