Skip to content

Commit afbcb5c

Browse files
committed
fix: add roles to the access cookie token signing
1 parent 696f84f commit afbcb5c

4 files changed

Lines changed: 22 additions & 19 deletions

File tree

package-lock.json

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

src/controllers/authentication.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -319,7 +319,7 @@ export const refreshSession = async (req: Request, res: Response) => {
319319
session.replacedBySessionId = newSession.id;
320320
await session.save();
321321

322-
const token = await signAccessToken(session.id, user.id);
322+
const token = await signAccessToken(session.id, user.id, user.roles);
323323

324324
if (token && newRefreshTokenHash) {
325325
await AuthEventService.log({ userId: user.id, type: 'refresh_token_success', req });

src/controllers/otp.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ export const verifyPhoneNumber = async (req: Request, res: Response) => {
231231
lastUsedAt: undefined,
232232
});
233233

234-
token = await signAccessToken(session.id, user.id);
234+
token = await signAccessToken(session.id, user.id, user.roles);
235235
}
236236

237237
if (token && refreshToken) {
@@ -342,7 +342,7 @@ export const verifyEmail = async (req: Request, res: Response) => {
342342
lastUsedAt: undefined,
343343
});
344344

345-
token = await signAccessToken(session.id, user.id);
345+
token = await signAccessToken(session.id, user.id, user.roles);
346346
}
347347

348348
if (token && refreshToken) {
@@ -438,7 +438,7 @@ export const verifyLoginPhoneNumber = async (req: Request, res: Response) => {
438438
lastUsedAt: undefined,
439439
});
440440

441-
token = await signAccessToken(session.id, user.id);
441+
token = await signAccessToken(session.id, user.id, user.roles);
442442
}
443443

444444
if (token && refreshToken) {
@@ -560,7 +560,7 @@ export const verifyLoginEmail = async (req: Request, res: Response) => {
560560
lastUsedAt: undefined,
561561
});
562562

563-
token = await signAccessToken(session.id, user.id);
563+
token = await signAccessToken(session.id, user.id, user.roles);
564564
}
565565

566566
if (token && refreshToken) {

src/controllers/webauthn.ts

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,7 @@ const verifyWebAuthnRegistration = async (req: Request, res: Response) => {
251251
lastUsedAt: undefined,
252252
});
253253

254-
const token = await signAccessToken(session.id, user.id);
254+
const token = await signAccessToken(session.id, user.id, user.roles);
255255

256256
user.challenge = '';
257257
user.verified = true;
@@ -275,16 +275,17 @@ const verifyWebAuthnRegistration = async (req: Request, res: Response) => {
275275

276276
const { access_token_ttl, refresh_token_ttl } = await getSystemConfig();
277277

278-
return res
279-
.status(200)
280-
.json({
281-
message: 'Success',
282-
token,
283-
refreshToken,
284-
sub: user.id,
285-
ttl: parseDurationToSeconds(access_token_ttl || '15m'),
286-
refreshTtl: parseDurationToSeconds(refresh_token_ttl || '1h'),
287-
});
278+
return res.status(200).json({
279+
message: 'Success',
280+
token,
281+
refreshToken,
282+
sub: user.id,
283+
roles: user.roles,
284+
email: user.email,
285+
phone: user.phone,
286+
ttl: parseDurationToSeconds(access_token_ttl || '15m'),
287+
refreshTtl: parseDurationToSeconds(refresh_token_ttl || '1h'),
288+
});
288289
}
289290
} catch (err) {
290291
logger.error(`Error in verifyWebAuthnRegistration: ${err}`);
@@ -516,6 +517,8 @@ const verifyWebAuthn = async (req: Request, res: Response) => {
516517
refreshToken,
517518
sub: user.id,
518519
roles: user.roles,
520+
email: user.email,
521+
phone: user.phone,
519522
ttl: parseDurationToSeconds(access_token_ttl || '15m'),
520523
refreshTtl: parseDurationToSeconds(refresh_token_ttl || '1h'),
521524
});

0 commit comments

Comments
 (0)