Skip to content

Commit 5fb1dda

Browse files
committed
:bug fix(auth-refresh): update supertokens-node and add refresh failure logging
1 parent 5e8139e commit 5fb1dda

File tree

3 files changed

+25
-13
lines changed

3 files changed

+25
-13
lines changed

packages/backend/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
"rrule": "^2.7.2",
2424
"saslprep": "^1.0.3",
2525
"socket.io": "^4.7.5",
26-
"supertokens-node": "^20.0.5",
26+
"supertokens-node": "^23.0.1",
2727
"tslib": "^2.4.0"
2828
},
2929
"devDependencies": {

packages/backend/src/common/middleware/supertokens.middleware.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,14 @@ import {
1111
PORT_DEFAULT_BACKEND,
1212
PORT_DEFAULT_WEB,
1313
} from "@core/constants/core.constants";
14+
import { Status } from "@core/errors/status.codes";
15+
import { Logger } from "@core/logger/winston.logger";
1416
import { ENV } from "@backend/common/constants/env.constants";
1517
import { SupertokensAccessTokenPayload } from "@backend/common/types/supertokens.types";
1618
import { webSocketServer } from "@backend/servers/websocket/websocket.server";
1719

20+
const logger = Logger("app:supertokens.middleware");
21+
1822
export const initSupertokens = () => {
1923
SuperTokens.init({
2024
appInfo: {
@@ -32,6 +36,18 @@ export const initSupertokens = () => {
3236
recipeList: [
3337
Dashboard.init(),
3438
Session.init({
39+
errorHandlers: {
40+
onTryRefreshToken: async (message, _request, response) => {
41+
logger.warn(
42+
`Session expired: ${message}. User tried to refresh the session.`,
43+
);
44+
45+
response.setStatusCode(Status.UNAUTHORIZED);
46+
response.sendJSONResponse({
47+
error: "Session expired. Please log in again.",
48+
});
49+
},
50+
},
3551
override: {
3652
apis(originalImplementation) {
3753
return {

yarn.lock

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4892,11 +4892,6 @@ cookie-signature@1.0.6:
48924892
resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
48934893
integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==
48944894

4895-
cookie@0.4.0:
4896-
version "0.4.0"
4897-
resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba"
4898-
integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==
4899-
49004895
cookie@0.7.1:
49014896
version "0.7.1"
49024897
resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.1.tgz#2f73c42142d5d5cf71310a74fc4ae61670e5dbc9"
@@ -4907,7 +4902,7 @@ cookie@^0.4.2:
49074902
resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432"
49084903
integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==
49094904

4910-
cookie@~0.7.2:
4905+
cookie@^0.7.2, cookie@~0.7.2:
49114906
version "0.7.2"
49124907
resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.2.tgz#556369c472a2ba910f2979891b526b3436237ed7"
49134908
integrity sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==
@@ -10735,7 +10730,7 @@ serve-static@1.16.2:
1073510730
parseurl "~1.3.3"
1073610731
send "0.19.0"
1073710732

10738-
set-cookie-parser@^2.4.6:
10733+
set-cookie-parser@^2.4.6, set-cookie-parser@^2.6.0:
1073910734
version "2.7.1"
1074010735
resolved "https://registry.yarnpkg.com/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz#3016f150072202dfbe90fadee053573cc89d2943"
1074110736
integrity sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==
@@ -11383,14 +11378,14 @@ supertokens-js-override@0.0.4, supertokens-js-override@^0.0.4:
1138311378
resolved "https://registry.yarnpkg.com/supertokens-js-override/-/supertokens-js-override-0.0.4.tgz#9af583fbc5e1f0195dbb358c4fcf75f44c76dc09"
1138411379
integrity sha512-r0JFBjkMIdep3Lbk3JA+MpnpuOtw4RSyrlRAbrzMcxwiYco3GFWl/daimQZ5b1forOiUODpOlXbSOljP/oyurg==
1138511380

11386-
supertokens-node@^20.0.5:
11387-
version "20.1.7"
11388-
resolved "https://registry.yarnpkg.com/supertokens-node/-/supertokens-node-20.1.7.tgz#d06511de0891b22d499fb219519864aef29706d9"
11389-
integrity sha512-Ol3LhYksxBBpmmzx8MX9sPSaaVI4x58gMpHbdy7wlzwpC3TM44HIEmAMD++ig3oOUNSvppqQVDkAcCFNafpl1w==
11381+
supertokens-node@^23.0.1:
11382+
version "23.0.1"
11383+
resolved "https://registry.yarnpkg.com/supertokens-node/-/supertokens-node-23.0.1.tgz#adc12cef47a0c1af1eddfe84db49ae8ff73af855"
11384+
integrity sha512-cCuY9Y5Mj93Pg1ktbqilouWgAoQWniQauftB4Ef6rfOchogx13XTo1pNP14zezn2rSf7WIPb9iaZb5zif6TKtQ==
1139011385
dependencies:
1139111386
buffer "^6.0.3"
1139211387
content-type "^1.0.5"
11393-
cookie "0.4.0"
11388+
cookie "^0.7.2"
1139411389
cross-fetch "^3.1.6"
1139511390
debug "^4.3.3"
1139611391
jose "^4.13.1"
@@ -11399,6 +11394,7 @@ supertokens-node@^20.0.5:
1139911394
pako "^2.1.0"
1140011395
pkce-challenge "^3.0.0"
1140111396
process "^0.11.10"
11397+
set-cookie-parser "^2.6.0"
1140211398
supertokens-js-override "^0.0.4"
1140311399
tldts "^6.1.48"
1140411400
twilio "^4.19.3"

0 commit comments

Comments
 (0)