nestjs_auth...

This commit is contained in:
최준흠 2022-09-13 18:48:01 +09:00
parent bdc819807d
commit bd66031312

View File

@ -45,12 +45,23 @@ export class AuthService {
}
async register(data: UserDTO): Promise<User> {
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<any> {
//Access Token 재발행
async reload(refresh_token): Promise<any> {
const user = await this.userService.fetchOne({
refresh_token: refresh_token
})
return await this.getAccessToken(user)
}
//Access Token 및 refresh Token 재발행
async recreate(user: User): Promise<any> {
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<any> {
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<any> {
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<any> {
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<any> {
return {
access_token: await this.getAccessToken(data),
refresh_token: await this.getRefreshToken()
}
}
}