У меня есть веб-сервер, написанный в узел / express, который использует паспорт для аутентификации пользователей с помощью JSON веб-токенов (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
});
Как использовать паспортную аутентификацию, чтобы разрешить клиентам с правильным токеном подключаться к серверу веб-сокетов?