diff --git a/src/auth/auth.service.ts b/src/auth/auth.service.ts index 7b40ab9..485ba4b 100644 --- a/src/auth/auth.service.ts +++ b/src/auth/auth.service.ts @@ -45,12 +45,23 @@ export class AuthService { } async register(data: UserDTO): Promise { - data.refresh_token = (await this.getTokens(data)).refresh_token + const tokens = await this.getTokens(data) + data.refresh_token = tokens.refresh_token data.password = await this.getEcryptedPassword(data.password) - return await this.userService.add(data) + await this.userService.add(data) + return tokens } - async refreshTokens(user: User): Promise { + //Access Token 재발행 + async reload(refresh_token): Promise { + const user = await this.userService.fetchOne({ + refresh_token: refresh_token + }) + return await this.getAccessToken(user) + } + + //Access Token 및 refresh Token 재발행 + async recreate(user: User): Promise { const tokens = await this.getTokens(user) await this.userService.update({ where: { id: user.id }, @@ -59,36 +70,39 @@ export class AuthService { return tokens } - async getTokens(data: UserDTO): Promise { - return await Promise.all([ - this.jwtService.sign( - { - email: data.email, - name: data.name - }, - { - secret: jwtConstants.access_secret, - expiresIn: jwtConstants.access_expiresIn - } - ), - this.jwtService.sign( - {}, - { - secret: jwtConstants.refresh_secret, - expiresIn: jwtConstants.refresh_expiresIn - } - ) - ]).then((response) => { - return { - access_token: { - token: response[0], - expiresIn: jwtConstants.access_expiresIn - }, - refresh_token: { - token: response[1], - expiresIn: jwtConstants.refresh_expiresIn - } + async getAccessToken(data: UserDTO): Promise { + const token = await this.jwtService.sign( + { + email: data.email, + name: data.name + }, + { + secret: jwtConstants.access_secret, + expiresIn: jwtConstants.access_expiresIn } - }) + ) + return { + token: token, + expiresIn: jwtConstants.access_expiresIn + } + } + async getRefreshToken(): Promise { + const token = await this.jwtService.sign( + {}, + { + secret: jwtConstants.access_secret, + expiresIn: jwtConstants.refresh_expiresIn + } + ) + return { + token: token, + expiresIn: jwtConstants.refresh_expiresIn + } + } + async getTokens(data: UserDTO): Promise { + return { + access_token: await this.getAccessToken(data), + refresh_token: await this.getRefreshToken() + } } }