diff --git a/src/server/session.js b/src/server/session.js index 3e4aaef..221729b 100644 --- a/src/server/session.js +++ b/src/server/session.js @@ -1,6 +1,8 @@ import session from 'express-session'; import {registerHooks} from 'scwp'; +import {joinChannel, validateChannel} from '~/common/channel'; + import {appChatState, appUserState, appUsernamesState} from './entry'; import createRedisClient from './redis'; @@ -20,11 +22,16 @@ export default (options = {}) => ( registerHooks({ hydrators: async (req, res) => { - if (req.channel && !req.user) { - const {name, type} = req.channel; - if (name !== 'anonymous' || type !== 'r') { + if (req.channel) { + if (!validateChannel(joinChannel(req.channel))) { res.redirect('/'); - return new Promise(() => {}); + } + if (!req.user) { + const {name, type} = req.channel; + if (name !== 'anonymous' || type !== 'r') { + res.redirect('/'); + return new Promise(() => {}); + } } } return {