Skip to content

Commit 4abea50

Browse files
committed
added cookie level
1 parent d94ee2a commit 4abea50

File tree

7 files changed

+48
-2
lines changed

7 files changed

+48
-2
lines changed

package.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44
"description": "",
55
"author": "",
66
"private": true,
7-
"license": "UNLICENSED",
7+
"license": "BSD-3-Clause",
8+
"packageManager": "pnpm@^7.13.2",
89
"scripts": {
910
"prebuild": "rimraf dist",
1011
"build": "nest build",
@@ -21,6 +22,7 @@
2122
"test:e2e": "jest --config ./test/jest-e2e.json"
2223
},
2324
"dependencies": {
25+
"@fastify/cookie": "^8.3.0",
2426
"@fastify/static": "^6.5.0",
2527
"@fastify/view": "^7.1.0",
2628
"@nestjs/common": "^9.0.0",
@@ -76,7 +78,7 @@
7678
"coverageDirectory": "../coverage",
7779
"testEnvironment": "node",
7880
"moduleNameMapper": {
79-
"^~\/(.*)$": "<rootDir>/$1"
81+
"^~/(.*)$": "<rootDir>/$1"
8082
}
8183
}
8284
}

pnpm-lock.yaml

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/app.module.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import { PreserveLogController } from '~/controllers/preserve-log.controller';
1010
import { NetworkBasicController } from '~/controllers/network-basic.controller';
1111
import { LocalstorageBasicController } from '~/controllers/localstorage-basic.controller';
1212
import { DebuggerController } from './controllers/debugger.controller';
13+
import { CookieBasicController } from './controllers/cookie-basic.controller';
1314

1415
@Module({
1516
controllers: [
@@ -21,6 +22,7 @@ import { DebuggerController } from './controllers/debugger.controller';
2122
SourcesBasicController,
2223
LocalstorageBasicController,
2324
DebuggerController,
25+
CookieBasicController,
2426
],
2527
providers: [AppService],
2628
imports: [

src/config.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,16 @@ const config = {
3131
url: 'level-b195d810',
3232
flag: createFlag('D3BUGG3R_M4$T3R'),
3333
}),
34+
cookieBasic: createLevelConfig('COOKIES_BASIC', {
35+
url: 'level-0d0b9a23',
36+
flag: createFlag('C00CK13_M0NST3R'),
37+
}),
3438
},
3539
server: {
3640
port: +envWithDefault<number>('PORT', 3000),
3741
secretKey: envWithDefault('SECRET_KEY', 'SecretKeyIsGood!'),
3842
initialVector: envWithDefault('KEY_INITIAL_VECTOR', 'secretInitialVec'),
43+
cookieSecret: envWithDefault('COOKIE_SECRET', 'matanel-made-this'),
3944
},
4045
} as const;
4146

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import { Controller, Get, Render, Res } from '@nestjs/common';
2+
import config from '~/config';
3+
4+
const levelConfig = config.levels.cookieBasic;
5+
6+
@Controller(levelConfig.url)
7+
export class CookieBasicController {
8+
@Get()
9+
@Render('cookie-basics.hbs')
10+
render(@Res() res) {
11+
res.setCookie('is this the flag?', levelConfig.flag);
12+
return {};
13+
}
14+
}

src/main.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import {
44
FastifyAdapter,
55
NestFastifyApplication,
66
} from '@nestjs/platform-fastify';
7+
import fastifyCookie from '@fastify/cookie';
78
import { AppModule } from './app.module';
89
import { LoggerInterceptor } from './interceptors';
910
import { MainFilter } from './filters';
@@ -18,6 +19,10 @@ async function bootstrap() {
1819
new FastifyAdapter()
1920
);
2021

22+
await app.register(fastifyCookie, {
23+
secret: config.server.cookieSecret,
24+
});
25+
2126
app.useGlobalInterceptors(new LoggerInterceptor());
2227

2328
app.useGlobalFilters(new MainFilter());

src/pages/cookie-basics.hbs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<!doctype html>
2+
<html lang="en">
3+
<head>
4+
{{> headers}}
5+
</head>
6+
<body class="center full-size">
7+
<h1 class="gradient-text gradient-2">Mmm tasty!</h1>
8+
</body>
9+
</html>

0 commit comments

Comments
 (0)