IT WORKS (session stored in redis, must add a password next)

This commit is contained in:
batche
2022-11-03 18:49:00 +01:00
parent 03b90690ce
commit 08d02e709b
4 changed files with 36 additions and 54 deletions

View File

@@ -5,27 +5,19 @@ const common_1 = require("@nestjs/common");
const app_module_1 = require("./app.module"); const app_module_1 = require("./app.module");
const session = require("express-session"); const session = require("express-session");
const passport = require("passport"); const passport = require("passport");
const redis_1 = require("redis"); const redis = require("redis");
const connectRedis = require("connect-redis"); const connectRedis = require("connect-redis");
async function bootstrap() { async function bootstrap() {
const app = await core_1.NestFactory.create(app_module_1.AppModule); const app = await core_1.NestFactory.create(app_module_1.AppModule);
const client = (0, redis_1.createClient)({ const port = process.env.PORT || 3001;
url: process.env.REDIS_URL, const client = redis.createClient({
socket: { host: process.env.REDIS_HOST, port: parseInt(process.env.REDIS_PORT) },
legacyMode: true,
}); });
client.connect();
const RedisStore = connectRedis(session); const RedisStore = connectRedis(session);
client
.connect()
.then(async (res) => {
console.log('connected');
})
.catch((err) => {
console.log('err happened' + err);
});
client.on('error', (err) => {
console.log("Redis error: " + err);
});
client.on('connect', () => { client.on('connect', () => {
console.log("Redis connected"); console.log("Redis Connected");
}); });
app.useGlobalPipes(new common_1.ValidationPipe({ app.useGlobalPipes(new common_1.ValidationPipe({
whitelist: true, whitelist: true,
@@ -35,7 +27,6 @@ async function bootstrap() {
enableImplicitConversion: true, enableImplicitConversion: true,
}, },
})); }));
const port = process.env.PORT || 3001;
app.setGlobalPrefix('api/v2'); app.setGlobalPrefix('api/v2');
app.use(session({ app.use(session({
cookie: { cookie: {

View File

@@ -1 +1 @@
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";;AAAA,uCAA2C;AAC3C,2CAAgD;AAChD,6CAAyC;AACzC,2CAA2C;AAC3C,qCAAqC;AACrC,iCAAmC;AACnC,8CAA8C;AAE9C,KAAK,UAAU,SAAS;IAEtB,MAAM,GAAG,GAAG,MAAM,kBAAW,CAAC,MAAM,CAAC,sBAAS,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,IAAA,oBAAY,EAC1B;QACC,GAAG,EAAG,OAAO,CAAC,GAAG,CAAC,SAAS;KAC3B,CACD,CAAC;IACF,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM;SACJ,OAAO,EAAE;SACT,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QAClB,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAAA,CAAC,CAAC;SAC5B,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACb,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,GAAG,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IACJ,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;QAC1B,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,GAAG,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;QACzB,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAGF,GAAG,CAAC,cAAc,CACnB,IAAI,uBAAc,CAAC;QAElB,SAAS,EAAE,IAAI;QAEf,oBAAoB,EAAE,IAAI;QAE1B,SAAS,EAAE,IAAI;QACf,gBAAgB,EAAE;YACjB,wBAAwB,EAAE,IAAI;SAC9B;KACD,CAAC,CACA,CAAC;IACF,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC;IACtC,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC9B,GAAG,CAAC,GAAG,CACR,OAAO,CAAC;QACN,MAAM,EAAE;YACP,MAAM,EAAE,OAAO,GAAG,EAAE;SACpB;QACD,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa;QACjC,MAAM,EAAE,KAAK;QACb,iBAAiB,EAAE,KAAK;QACxB,KAAK,EAAE,IAAI,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;KAEjC,CAAC,CACF,CAAC;IACF,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IAC/B,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5B,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7E,CAAC;AACD,SAAS,EAAE,CAAC"} {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";;AAAA,uCAA2C;AAC3C,2CAAgD;AAChD,6CAAyC;AACzC,2CAA2C;AAC3C,qCAAqC;AACrC,+BAA+B;AAC/B,8CAA8C;AAE9C,KAAK,UAAU,SAAS;IACvB,MAAM,GAAG,GAAG,MAAM,kBAAW,CAAC,MAAM,CAAC,sBAAS,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC;IACtC,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,CAChC;QACC,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;QAChF,UAAU,EAAE,IAAI;KAChB,CACD,CAAC;IACF,MAAM,CAAC,OAAO,EAAE,CAAC;IACjB,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;QACzB,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAIH,GAAG,CAAC,cAAc,CACjB,IAAI,uBAAc,CAAC;QAElB,SAAS,EAAE,IAAI;QAEf,oBAAoB,EAAE,IAAI;QAE1B,SAAS,EAAE,IAAI;QACf,gBAAgB,EAAE;YACjB,wBAAwB,EAAE,IAAI;SAC9B;KACD,CAAC,CACF,CAAC;IACF,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC9B,GAAG,CAAC,GAAG,CACN,OAAO,CAAC;QACP,MAAM,EAAE;YACP,MAAM,EAAE,OAAO,GAAG,EAAE;SACpB;QACD,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa;QACjC,MAAM,EAAE,KAAK;QACb,iBAAiB,EAAE,KAAK;QACxB,KAAK,EAAE,IAAI,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;KACjC,CAAC,CACF,CAAC;IACF,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IAC/B,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5B,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7E,CAAC;AACD,SAAS,EAAE,CAAC"}

File diff suppressed because one or more lines are too long

View File

@@ -3,50 +3,42 @@ import { ValidationPipe } from '@nestjs/common';
import { AppModule } from './app.module'; import { AppModule } from './app.module';
import * as session from 'express-session'; import * as session from 'express-session';
import * as passport from 'passport'; import * as passport from 'passport';
import {createClient} from 'redis'; import * as redis from 'redis';
import * as connectRedis from 'connect-redis'; import * as connectRedis from 'connect-redis';
async function bootstrap() { async function bootstrap() {
const app = await NestFactory.create(AppModule);
const app = await NestFactory.create(AppModule); const port = process.env.PORT || 3001;
const client = createClient( const client = redis.createClient(
{ {
url : process.env.REDIS_URL, socket: { host: process.env.REDIS_HOST, port: parseInt(process.env.REDIS_PORT) },
legacyMode: true,
} }
); );
client.connect();
const RedisStore = connectRedis(session); const RedisStore = connectRedis(session);
client
.connect()
.then(async (res) => {
console.log('connected');})
.catch((err) => {
console.log('err happened' + err);
});
client.on('error', (err) => {
console.log("Redis error: " + err);
});
client.on('connect', () => { client.on('connect', () => {
console.log("Redis connected"); console.log("Redis Connected");
}); });
// module afin de créer un pipe de validation qui va nous aider
// à valider les données qui sont envoyées par les utilisateurs // module afin de créer un pipe de validation qui va nous aider
app.useGlobalPipes( // à valider les données qui sont envoyées par les utilisateurs
new ValidationPipe({ app.useGlobalPipes(
//permet une liste blanche new ValidationPipe({
whitelist: true, //permet une liste blanche
//interdit les propriétés non autorisées whitelist: true,
forbidNonWhitelisted: true, //interdit les propriétés non autorisées
//permet de transformer les données en fonction de leur type forbidNonWhitelisted: true,
transform: true, //permet de transformer les données en fonction de leur type
transformOptions: {//permet de transformer les données en fonction de leur type transform: true,
enableImplicitConversion: true, transformOptions: {//permet de transformer les données en fonction de leur type
}, enableImplicitConversion: true,
}), },
); }),
const port = process.env.PORT || 3001; );
app.setGlobalPrefix('api/v2'); app.setGlobalPrefix('api/v2');
app.use( app.use(
session({ session({
cookie: { cookie: {
maxAge: 3600000 * 24, maxAge: 3600000 * 24,
}, },
@@ -54,7 +46,6 @@ async function bootstrap() {
resave: false, resave: false,
saveUninitialized: false, saveUninitialized: false,
store: new RedisStore({ client }), store: new RedisStore({ client }),
}), }),
); );
app.use(passport.initialize()); app.use(passport.initialize());