mirror of
https://github.com/ershisan99/flashcards-api.git
synced 2025-12-17 12:33:22 +00:00
feat: add v2 refresh token
This commit is contained in:
@@ -14,6 +14,7 @@ import {
|
|||||||
UploadedFiles,
|
UploadedFiles,
|
||||||
UseGuards,
|
UseGuards,
|
||||||
UseInterceptors,
|
UseInterceptors,
|
||||||
|
Version,
|
||||||
} from '@nestjs/common'
|
} from '@nestjs/common'
|
||||||
import { CommandBus } from '@nestjs/cqrs'
|
import { CommandBus } from '@nestjs/cqrs'
|
||||||
import { FileFieldsInterceptor } from '@nestjs/platform-express'
|
import { FileFieldsInterceptor } from '@nestjs/platform-express'
|
||||||
@@ -24,6 +25,7 @@ import {
|
|||||||
ApiConsumes,
|
ApiConsumes,
|
||||||
ApiNoContentResponse,
|
ApiNoContentResponse,
|
||||||
ApiNotFoundResponse,
|
ApiNotFoundResponse,
|
||||||
|
ApiOkResponse,
|
||||||
ApiOperation,
|
ApiOperation,
|
||||||
ApiTags,
|
ApiTags,
|
||||||
ApiUnauthorizedResponse,
|
ApiUnauthorizedResponse,
|
||||||
@@ -180,8 +182,9 @@ export class AuthController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation({
|
@ApiOperation({
|
||||||
description: 'Get new access token using refresh token',
|
description: 'Deprecated, use v2',
|
||||||
summary: 'Get new access token using refresh token',
|
summary: 'Deprecated, use v2',
|
||||||
|
deprecated: true,
|
||||||
})
|
})
|
||||||
@ApiUnauthorizedResponse({ description: 'Invalid or missing refreshToken' })
|
@ApiUnauthorizedResponse({ description: 'Invalid or missing refreshToken' })
|
||||||
@ApiNoContentResponse({ description: 'New tokens generated successfully' })
|
@ApiNoContentResponse({ description: 'New tokens generated successfully' })
|
||||||
@@ -215,6 +218,26 @@ export class AuthController {
|
|||||||
refreshToken: newTokens.refreshToken,
|
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 {
|
return {
|
||||||
accessToken: newTokens.accessToken,
|
accessToken: newTokens.accessToken,
|
||||||
refreshToken: newTokens.refreshToken,
|
refreshToken: newTokens.refreshToken,
|
||||||
|
|||||||
Reference in New Issue
Block a user