refactor(security): sockets
This commit is contained in:
parent
73b483f7e9
commit
c2a9287a52
|
@ -38,16 +38,16 @@
|
||||||
'@latus/redis/session': {}
|
'@latus/redis/session': {}
|
||||||
'@latus/repl': {}
|
'@latus/repl': {}
|
||||||
'@latus/socket': {
|
'@latus/socket': {
|
||||||
|
packets.decorate: [
|
||||||
|
'@latus/governor',
|
||||||
|
],
|
||||||
|
}
|
||||||
|
'@latus/socket/server': {
|
||||||
authenticate: [
|
authenticate: [
|
||||||
'@latus/user/session',
|
'@latus/user/session',
|
||||||
'@latus/user/passport',
|
'@latus/user/passport',
|
||||||
],
|
],
|
||||||
connect: [
|
connect: [],
|
||||||
'@latus/socket',
|
|
||||||
],
|
|
||||||
packets.decorate: [
|
|
||||||
'@latus/governor',
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
'@latus/user/local': {}
|
'@latus/user/local': {}
|
||||||
'@latus/user/models': {}
|
'@latus/user/models': {}
|
||||||
|
|
|
@ -57,10 +57,10 @@ export default {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
'@latus/socket/authenticate': (latus) => {
|
'@latus/socket/server/authenticate': (latus) => {
|
||||||
const {config: {'@latus/governor/server': {socket}}} = latus;
|
const {config: {'@latus/governor/server': {socket}}} = latus;
|
||||||
const limiter = createLimiter(latus, {
|
const limiter = createLimiter(latus, {
|
||||||
keyPrefix: '@latus/socket/authenticate',
|
keyPrefix: '@latus/socket/server/authenticate',
|
||||||
...socket,
|
...socket,
|
||||||
});
|
});
|
||||||
return async (socket, next) => {
|
return async (socket, next) => {
|
||||||
|
|
|
@ -33,7 +33,7 @@ export default {
|
||||||
'@latus/user/session': (latus) => ({
|
'@latus/user/session': (latus) => ({
|
||||||
store: new RedisStore({client: createClient(latus)}),
|
store: new RedisStore({client: createClient(latus)}),
|
||||||
}),
|
}),
|
||||||
'@latus/socket/connect': ({req}, {config: {'%redisAdapter': adapter}}) => {
|
'@latus/socket/server/connect': ({req}, {config: {'%redisAdapter': adapter}}) => {
|
||||||
adapterIntoReq('sockets', adapter, req);
|
adapterIntoReq('sockets', adapter, req);
|
||||||
},
|
},
|
||||||
'@latus/socket/server': (latus) => {
|
'@latus/socket/server': (latus) => {
|
||||||
|
|
|
@ -12,8 +12,7 @@ export {default as packets} from './packet/packets';
|
||||||
export default {
|
export default {
|
||||||
hooks: {
|
hooks: {
|
||||||
'@latus/core/config': () => ({
|
'@latus/core/config': () => ({
|
||||||
authenticate: [],
|
'packets.decorate': [],
|
||||||
connect: [],
|
|
||||||
}),
|
}),
|
||||||
'@latus/core/starting': (latus) => {
|
'@latus/core/starting': (latus) => {
|
||||||
// eslint-disable-next-line no-param-reassign
|
// eslint-disable-next-line no-param-reassign
|
||||||
|
|
|
@ -3,6 +3,10 @@ import Sockets from './sockets';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
hooks: {
|
hooks: {
|
||||||
|
'@latus/core/config': () => ({
|
||||||
|
authenticate: [],
|
||||||
|
connect: [],
|
||||||
|
}),
|
||||||
'@latus/http/server/up': async (httpServer, latus) => {
|
'@latus/http/server/up': async (httpServer, latus) => {
|
||||||
latus.set('%sockets', new Sockets(httpServer, latus));
|
latus.set('%sockets', new Sockets(httpServer, latus));
|
||||||
},
|
},
|
||||||
|
|
|
@ -26,7 +26,7 @@ export default class SocketServer {
|
||||||
headers: socket.request.headers,
|
headers: socket.request.headers,
|
||||||
}, app.get('trust proxy fn')),
|
}, app.get('trust proxy fn')),
|
||||||
});
|
});
|
||||||
latus.invokeMiddleware('@latus/socket/authenticate', socket, next);
|
latus.invokeMiddleware('@latus/socket/server/authenticate', socket, next);
|
||||||
});
|
});
|
||||||
latus.invoke('@latus/socket/server.io', this.io);
|
latus.invoke('@latus/socket/server.io', this.io);
|
||||||
this.io.on('connect', this.onConnect);
|
this.io.on('connect', this.onConnect);
|
||||||
|
@ -47,7 +47,7 @@ export default class SocketServer {
|
||||||
const {req} = serverSocket;
|
const {req} = serverSocket;
|
||||||
req.latus = this.latus;
|
req.latus = this.latus;
|
||||||
req.adapter = this.io.of('/').adapter;
|
req.adapter = this.io.of('/').adapter;
|
||||||
this.latus.invokeSequential('@latus/socket/connect', serverSocket);
|
this.latus.invokeSequential('@latus/socket/server/connect', serverSocket);
|
||||||
}
|
}
|
||||||
|
|
||||||
static send(latus, nsp, packetOrDehydrated) {
|
static send(latus, nsp, packetOrDehydrated) {
|
||||||
|
|
|
@ -60,10 +60,10 @@ export default {
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
'@latus/socket/authenticate': (latus) => (socket, next) => {
|
'@latus/socket/server/authenticate': (latus) => (socket, next) => {
|
||||||
debug('@latus/socket/authenticate: passport.initialize()');
|
debug('@latus/socket/server/authenticate: passport.initialize()');
|
||||||
passport.initialize()(socket.handshake, undefined, () => {
|
passport.initialize()(socket.handshake, undefined, () => {
|
||||||
debug('@latus/socket/authenticate: passport.session()');
|
debug('@latus/socket/server/authenticate: passport.session()');
|
||||||
passport.session()(socket.handshake, undefined, async () => {
|
passport.session()(socket.handshake, undefined, async () => {
|
||||||
/* eslint-disable no-param-reassign */
|
/* eslint-disable no-param-reassign */
|
||||||
if (!socket.handshake.user) {
|
if (!socket.handshake.user) {
|
||||||
|
|
|
@ -33,8 +33,8 @@ export default {
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
'@latus/socket/authenticate': (latus) => (socket, next) => {
|
'@latus/socket/server/authenticate': (latus) => (socket, next) => {
|
||||||
debug('@latus/socket/authenticate: session()');
|
debug('@latus/socket/server/authenticate: session()');
|
||||||
latus.config['%session'](socket.handshake, {}, next);
|
latus.config['%session'](socket.handshake, {}, next);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in New Issue
Block a user