Skip to content

Commit 875eddf

Browse files
committed
Rebase main
1 parent 67a2668 commit 875eddf

File tree

10 files changed

+22
-32
lines changed

10 files changed

+22
-32
lines changed

.env.example

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,3 @@ OTP_EXPIRATION_MINUTES=15
2626
ENABLE_RATE_LIMIT='true'
2727
COOKIE_SECRET="secret"
2828
COOKIE_EXPIRATION_SECONDS=86400 # 24 hours
29-
ENABLE_COOKIE="true"
30-
ENABLE_JWT="true"

.github/workflows/node.js.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,6 @@ env:
3333
ENABLE_RATE_LIMIT: 'true'
3434
COOKIE_SECRET: 'secret'
3535
COOKIE_EXPIRATION_SECONDS: '3600'
36-
ENABLE_COOKIE: 'true'
37-
ENABLE_JWT: 'true'
3836

3937
jobs:
4038
build:

.woodpecker/.backend-ci.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,6 @@ x-common: &common
2525
- ENABLE_RATE_LIMIT=true
2626
- COOKIE_SECRET=secret
2727
- COOKIE_EXPIRATION_SECONDS=3600
28-
- ENABLE_COOKIE=true
29-
- ENABLE_JWT=true
3028

3129
pipeline:
3230
setup:

package-lock.json

Lines changed: 3 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
"@types/bcryptjs": "^2.4.2",
3737
"@types/body-parser": "^1.19.2",
3838
"@types/compression": "^1.7.2",
39+
"@types/cookie-parser": "^1.4.6",
3940
"@types/cors": "^2.8.12",
4041
"@types/cross-spawn": "^6.0.6",
4142
"@types/express": "^4.17.13",
@@ -63,7 +64,6 @@
6364
},
6465
"dependencies": {
6566
"@prisma/client": "^5.5.2",
66-
"@types/cookie-parser": "^1.4.6",
6767
"bcryptjs": "^2.4.3",
6868
"body-parser": "^1.19.2",
6969
"bullmq": "^4.13.2",

src/config/config.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,6 @@ const envVarsSchema = z
6363
(val) => !Number.isNaN(val),
6464
'COOKIE EXPIRATION SECONDS must be a number',
6565
),
66-
ENABLE_COOKIE: z.string(),
67-
ENABLE_JWT: z.string(),
6866
})
6967
.passthrough();
7068

@@ -75,8 +73,6 @@ export const isTest = envVars.NODE_ENV === 'test';
7573
export const isProduction = envVars.NODE_ENV === 'production';
7674
export const hasToApplyRateLimit =
7775
envVars.ENABLE_RATE_LIMIT.toLocaleLowerCase() === 'true';
78-
export const cookieEnabled = envVars.ENABLE_COOKIE === 'true';
79-
export const JWTEnabled = envVars.ENABLE_JWT === 'true';
8076

8177
export const config: Config = {
8278
env: envVars.NODE_ENV,

src/controllers/auth.ts

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import {
99
AuthenticatedRequest,
1010
LoginParams,
1111
} from 'types';
12-
import { cookieEnabled, JWTEnabled } from 'config/config';
1312
import { COOKIE_NAME, cookieConfig } from 'utils/auth';
1413

1514
@Route('v1/auth')
@@ -20,13 +19,12 @@ export class AuthControllerV1 extends Controller {
2019
@Request() req: AuthenticatedRequest,
2120
): Promise<ReturnAuth | null> {
2221
const { sessionId, ...authReturn } = await AuthService.register(user);
22+
2323
const { res } = req;
24-
if (cookieEnabled) {
25-
res?.cookie(COOKIE_NAME, sessionId, cookieConfig);
26-
}
24+
res?.cookie(COOKIE_NAME, sessionId, cookieConfig);
25+
2726
this.setStatus(httpStatus.CREATED);
28-
if (JWTEnabled) return authReturn;
29-
return null;
27+
return authReturn;
3028
}
3129

3230
@Post('/login')
@@ -36,12 +34,9 @@ export class AuthControllerV1 extends Controller {
3634
): Promise<ReturnAuth | null> {
3735
const { sessionId, ...authReturn } = await AuthService.login(loginParams);
3836
const { res } = req;
39-
if (cookieEnabled) {
40-
res?.cookie(COOKIE_NAME, sessionId, cookieConfig);
41-
}
37+
res?.cookie(COOKIE_NAME, sessionId, cookieConfig);
4238
this.setStatus(httpStatus.OK);
43-
if (JWTEnabled) return authReturn;
44-
return null;
39+
return authReturn;
4540
}
4641

4742
@Post('/logout')

src/controllers/users.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ import {
1919
PasswordResetCodeRequest,
2020
ResetPassword,
2121
} from 'types';
22-
import { cookieEnabled } from 'config/config';
2322
import { COOKIE_NAME } from 'utils/auth';
2423

2524
@Route('v1/users')
@@ -74,7 +73,7 @@ export class UsersControllerV1 extends Controller {
7473
): Promise<void> {
7574
const { user, res } = req;
7675
await UserService.destroy(id);
77-
if (cookieEnabled && user.id === id) res?.clearCookie(COOKIE_NAME);
76+
if (user.id === id) res?.clearCookie(COOKIE_NAME);
7877
this.setStatus(httpStatus.NO_CONTENT);
7978
}
8079

src/middlewares/auth.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { Request } from 'express';
22
import jwt from 'jsonwebtoken';
3-
import { config, JWTEnabled } from 'config/config';
3+
import { config } from 'config/config';
44
import { ApiError } from 'utils/apiError';
55
import { errors } from 'config/errors';
66
import { verifyCookie } from 'utils/auth';
@@ -15,7 +15,7 @@ export function expressAuthentication(
1515
const token = request.headers.authorization!;
1616

1717
return new Promise((resolve, reject) => {
18-
if (!token || !JWTEnabled) {
18+
if (!token) {
1919
reject(new ApiError(errors.UNAUTHENTICATED));
2020
}
2121
jwt.verify(token, config.accessTokenSecret, (err: any, decoded: any) => {

src/utils/auth.ts

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,26 @@ import { CookieOptions } from 'express';
22

33
import { errors } from 'config/errors';
44
import prisma from 'root/prisma/client';
5-
import { cookieEnabled, config, isProduction } from 'config/config';
5+
import { config, isProduction } from 'config/config';
66
import { ApiError } from './apiError';
77

88
export const COOKIE_NAME = 'token';
99

1010
const SECONDS_TO_MILLISECONDS = 1000;
1111

12-
export const cookieConfig = {
12+
type SignedCookie = {
13+
token: string;
14+
};
15+
16+
export const cookieConfig: CookieOptions = {
1317
signed: true,
1418
httpOnly: true,
1519
maxAge: config.cookieExpirationSeconds * SECONDS_TO_MILLISECONDS,
1620
secure: isProduction,
17-
} as CookieOptions;
21+
};
1822

19-
export const verifyCookie = async (signedCookies: any) => {
20-
if (!cookieEnabled || !signedCookies || !signedCookies.token) {
23+
export const verifyCookie = async (signedCookies: SignedCookie | null) => {
24+
if (!signedCookies || !signedCookies.token) {
2125
throw new ApiError(errors.UNAUTHENTICATED);
2226
}
2327

0 commit comments

Comments
 (0)