Skip to content

Commit

Permalink
refactor(#10): refreshTokenGuard 추가
Browse files Browse the repository at this point in the history
  • Loading branch information
NicoDora committed Nov 2, 2023
1 parent 92c4101 commit 244a409
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 3 deletions.
6 changes: 3 additions & 3 deletions src/auth/controllers/auth.controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import {
Controller,
Delete,
Get,
Headers,
Post,
Query,
Res,
Expand All @@ -22,6 +21,7 @@ import { ApiNaverLogout } from '../swagger-decorators/naver-logout.decorator';
import { ApiNaverUnlink } from '../swagger-decorators/naver-unlink.decorator';
import { ApiDeleteAccount } from '../swagger-decorators/delete-account.decorator';
import { JwtAccessTokenGuard } from 'src/config/guards/jwt-access-token.guard';
import { JwtRefreshTokenGuard } from 'src/config/guards/jwt-refresh-token.guard';
import { GetUserId } from 'src/common/decorators/get-userId.decorator';

@Controller('auth')
Expand Down Expand Up @@ -78,12 +78,12 @@ export class AuthController {
}

@ApiNewAccessToken()
@UseGuards(JwtRefreshTokenGuard)
@Get('new-access-token')
async newAccessToken(
@Headers('refresh_token') refreshToken: string,
@GetUserId() userId: number,
@Res() res,
) {
const userId = await this.tokenService.decodeToken(refreshToken);
const newAccessToken = await this.tokenService.createAccessToken(userId);
return res.json({ accessToken: newAccessToken });
}
Expand Down
23 changes: 23 additions & 0 deletions src/config/guards/jwt-refresh-token.guard.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import { ExecutionContext, Injectable } from "@nestjs/common";
import { TokenService } from "src/auth/services/token.service";

@Injectable()
export class JwtRefreshTokenGuard {
constructor(
private tokenService: TokenService,
) {}

async canActivate(context: ExecutionContext) {
const request = context.switchToHttp().getRequest();
const refreshToken = request.headers['refresh_token'];

if (!refreshToken) {
return false;
}

const userId = await this.tokenService.decodeToken(refreshToken);
request.user = { userId };

return true;
}
}

0 comments on commit 244a409

Please sign in to comment.