mirror of
https://github.com/ershisan99/flashcards-api.git
synced 2025-12-16 20:59:26 +00:00
feat: add v2 refresh token
This commit is contained in:
@@ -14,6 +14,7 @@ import {
|
||||
UploadedFiles,
|
||||
UseGuards,
|
||||
UseInterceptors,
|
||||
Version,
|
||||
} from '@nestjs/common'
|
||||
import { CommandBus } from '@nestjs/cqrs'
|
||||
import { FileFieldsInterceptor } from '@nestjs/platform-express'
|
||||
@@ -24,6 +25,7 @@ import {
|
||||
ApiConsumes,
|
||||
ApiNoContentResponse,
|
||||
ApiNotFoundResponse,
|
||||
ApiOkResponse,
|
||||
ApiOperation,
|
||||
ApiTags,
|
||||
ApiUnauthorizedResponse,
|
||||
@@ -180,8 +182,9 @@ export class AuthController {
|
||||
}
|
||||
|
||||
@ApiOperation({
|
||||
description: 'Get new access token using refresh token',
|
||||
summary: 'Get new access token using refresh token',
|
||||
description: 'Deprecated, use v2',
|
||||
summary: 'Deprecated, use v2',
|
||||
deprecated: true,
|
||||
})
|
||||
@ApiUnauthorizedResponse({ description: 'Invalid or missing refreshToken' })
|
||||
@ApiNoContentResponse({ description: 'New tokens generated successfully' })
|
||||
@@ -215,6 +218,26 @@ export class AuthController {
|
||||
refreshToken: newTokens.refreshToken,
|
||||
})
|
||||
|
||||
return null
|
||||
}
|
||||
|
||||
@ApiOperation({
|
||||
description: 'Get new access token using refresh token',
|
||||
summary: 'Get new access token using refresh token',
|
||||
})
|
||||
@ApiUnauthorizedResponse({ description: 'Invalid or missing refreshToken' })
|
||||
@ApiOkResponse({ description: 'New tokens generated successfully' })
|
||||
@HttpCode(HttpStatus.OK)
|
||||
@UseGuards(JwtRefreshGuard)
|
||||
@Post('refresh-token')
|
||||
@Version('2')
|
||||
async refreshTokenV2(@Request() req): Promise<LoginResponse> {
|
||||
const userId = req.user.id
|
||||
const shortAccessToken = req.headers['x-short-access-token'] === 'true'
|
||||
const newTokens = await this.commandBus.execute(
|
||||
new RefreshTokenCommand(userId, shortAccessToken)
|
||||
)
|
||||
|
||||
return {
|
||||
accessToken: newTokens.accessToken,
|
||||
refreshToken: newTokens.refreshToken,
|
||||
|
||||
Reference in New Issue
Block a user