diff options
author | Joseph Ditton <jditton.atomic@gmail.com> | 2021-12-06 17:57:04 -0700 |
---|---|---|
committer | Joseph Ditton <jditton.atomic@gmail.com> | 2021-12-06 17:57:04 -0700 |
commit | f00547de095ea6aafe9e0054dbf700fb69df33af (patch) | |
tree | a290bcccc2542023e126474702cd773b7d1ac0a9 /server/controllers/sessions.controller.ts | |
parent | cc0f32a75f22fed46b9ba7509518d93d5293d1ec (diff) | |
download | locchat-f00547de095ea6aafe9e0054dbf700fb69df33af.tar.gz locchat-f00547de095ea6aafe9e0054dbf700fb69df33af.zip |
destroy all user refresh tokens on logout
Diffstat (limited to 'server/controllers/sessions.controller.ts')
-rw-r--r-- | server/controllers/sessions.controller.ts | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/server/controllers/sessions.controller.ts b/server/controllers/sessions.controller.ts index e1d1155..8a85a12 100644 --- a/server/controllers/sessions.controller.ts +++ b/server/controllers/sessions.controller.ts @@ -8,6 +8,8 @@ import { RefreshToken } from 'server/entities/refresh_token.entity'; import { Skip } from 'server/decorators/skip.decorator'; import { AuthGuard } from 'server/providers/guards/auth.guard'; import { RolesService } from 'server/providers/services/roles.service'; +import { JwtBody } from 'server/decorators/jwt_body.decorator'; +import { JwtBodyDto } from 'server/dto/jwt_body.dto'; // this is kind of a misnomer because we are doing token based auth // instead of session based auth @@ -53,7 +55,9 @@ export class SessionsController { } @Delete('/sessions') - async destroy(@Res({ passthrough: true }) res: Response) { + async destroy(@Res({ passthrough: true }) res: Response, @JwtBody() jwtBody: JwtBodyDto) { + const user = await this.usersService.find(jwtBody.userId, ['refreshTokens']); + await this.refreshTokenService.destroy(...user.refreshTokens); res.clearCookie('_refresh_token'); return { success: true }; } |