mirror of
https://github.com/hexastack/hexabot
synced 2025-06-26 18:27:28 +00:00
fix: refactor session store
This commit is contained in:
parent
acc6fcaa88
commit
e745b97e87
@ -134,12 +134,12 @@ export const config: Config = {
|
|||||||
max: 100, // Maximum number of items in cache (defaults to 100)
|
max: 100, // Maximum number of items in cache (defaults to 100)
|
||||||
},
|
},
|
||||||
mongo: {
|
mongo: {
|
||||||
user: process.env.MONGO_USER,
|
user: process.env.MONGO_USER || 'dev_only',
|
||||||
password: process.env.MONGO_PASSWORD,
|
password: process.env.MONGO_PASSWORD || 'dev_only',
|
||||||
uri: process.env.MONGO_URI,
|
uri: process.env.MONGO_URI || 'mongodb://dev_only:dev_only@mongo:27017/',
|
||||||
dbName: process.env.MONGO_DB,
|
dbName: process.env.MONGO_DB || 'hexabot',
|
||||||
},
|
},
|
||||||
env: process.env.NODE_ENV,
|
env: process.env.NODE_ENV || 'development',
|
||||||
authentication: {
|
authentication: {
|
||||||
jwtOptions: {
|
jwtOptions: {
|
||||||
salt: parseInt(process.env.SALT_LENGTH || '12'),
|
salt: parseInt(process.env.SALT_LENGTH || '12'),
|
||||||
|
@ -23,7 +23,7 @@ import { config } from './config';
|
|||||||
import { LoggerService } from './logger/logger.service';
|
import { LoggerService } from './logger/logger.service';
|
||||||
import { seedDatabase } from './seeder';
|
import { seedDatabase } from './seeder';
|
||||||
import { swagger } from './swagger';
|
import { swagger } from './swagger';
|
||||||
import { sessionStore } from './utils/constants/session-store';
|
import { getSessionStore } from './utils/constants/session-store';
|
||||||
import { ObjectIdPipe } from './utils/pipes/object-id.pipe';
|
import { ObjectIdPipe } from './utils/pipes/object-id.pipe';
|
||||||
|
|
||||||
async function bootstrap() {
|
async function bootstrap() {
|
||||||
@ -63,7 +63,7 @@ async function bootstrap() {
|
|||||||
proxy: config.security.trustProxy,
|
proxy: config.security.trustProxy,
|
||||||
resave: true,
|
resave: true,
|
||||||
saveUninitialized: false,
|
saveUninitialized: false,
|
||||||
store: sessionStore,
|
store: getSessionStore(),
|
||||||
cookie: {
|
cookie: {
|
||||||
httpOnly: true,
|
httpOnly: true,
|
||||||
secure: config.security.httpsEnabled,
|
secure: config.security.httpsEnabled,
|
||||||
|
@ -10,8 +10,15 @@ import MongoStore from 'connect-mongo';
|
|||||||
|
|
||||||
import { config } from '@/config';
|
import { config } from '@/config';
|
||||||
|
|
||||||
export const sessionStore = MongoStore.create({
|
let sessionStore: MongoStore = null;
|
||||||
|
|
||||||
|
export const getSessionStore = () => {
|
||||||
|
if (!sessionStore) {
|
||||||
|
sessionStore = MongoStore.create({
|
||||||
mongoUrl: config.mongo.uri,
|
mongoUrl: config.mongo.uri,
|
||||||
dbName: config.mongo.dbName,
|
dbName: config.mongo.dbName,
|
||||||
collectionName: 'sessions',
|
collectionName: 'sessions',
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
return sessionStore;
|
||||||
|
};
|
||||||
|
@ -33,7 +33,7 @@ import {
|
|||||||
import { OutgoingMessage, StdEventType } from '@/chat/schemas/types/message';
|
import { OutgoingMessage, StdEventType } from '@/chat/schemas/types/message';
|
||||||
import { config } from '@/config';
|
import { config } from '@/config';
|
||||||
import { LoggerService } from '@/logger/logger.service';
|
import { LoggerService } from '@/logger/logger.service';
|
||||||
import { sessionStore } from '@/utils/constants/session-store';
|
import { getSessionStore } from '@/utils/constants/session-store';
|
||||||
|
|
||||||
import { IOIncomingMessage, IOMessagePipe } from './pipes/io-message.pipe';
|
import { IOIncomingMessage, IOMessagePipe } from './pipes/io-message.pipe';
|
||||||
import { SocketEventDispatcherService } from './services/socket-event-dispatcher.service';
|
import { SocketEventDispatcherService } from './services/socket-event-dispatcher.service';
|
||||||
@ -134,7 +134,7 @@ export class WebsocketGateway
|
|||||||
},
|
},
|
||||||
passport: { user: {} },
|
passport: { user: {} },
|
||||||
}; // Initialize your session object as needed
|
}; // Initialize your session object as needed
|
||||||
sessionStore.set(sid, newSession, (err) => {
|
getSessionStore().set(sid, newSession, (err) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
this.logger.error('Error saving session:', err);
|
this.logger.error('Error saving session:', err);
|
||||||
return next(new Error('Unable to establish a new socket session'));
|
return next(new Error('Unable to establish a new socket session'));
|
||||||
@ -179,7 +179,7 @@ export class WebsocketGateway
|
|||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
sessionStore.set(sessionID, session, (err) => {
|
getSessionStore().set(sessionID, session, (err) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
this.logger.error(
|
this.logger.error(
|
||||||
'Error saving session in `config.sockets.afterDisconnect`:',
|
'Error saving session in `config.sockets.afterDisconnect`:',
|
||||||
@ -195,7 +195,7 @@ export class WebsocketGateway
|
|||||||
sessionID: string,
|
sessionID: string,
|
||||||
next: (err: Error, session: any) => void,
|
next: (err: Error, session: any) => void,
|
||||||
): void {
|
): void {
|
||||||
sessionStore.get(sessionID, (err, session) => {
|
getSessionStore().get(sessionID, (err, session) => {
|
||||||
this.logger.verbose('Retrieved socket session', err || session);
|
this.logger.verbose('Retrieved socket session', err || session);
|
||||||
return next(err, session);
|
return next(err, session);
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user