diff --git a/src/controllers/AuthController.ts b/src/controllers/AuthController.ts index c8c6954..8ea00ba 100644 --- a/src/controllers/AuthController.ts +++ b/src/controllers/AuthController.ts @@ -32,13 +32,14 @@ export class AuthController { } // Create JWT - const token = encrypt.generateToken({ + const tokenInfo = encrypt.generateToken({ id: user.id, }); const responseDto = new LoginResponseDto(); responseDto.userData = this.mapper.toDto(user); - responseDto.token = token; + responseDto.token = tokenInfo.token; + responseDto.expiryDate = tokenInfo.expiryDate; return responseDto; } } diff --git a/src/dtos/LoginResponseDto.ts b/src/dtos/LoginResponseDto.ts index 695927b..fdb5a39 100644 --- a/src/dtos/LoginResponseDto.ts +++ b/src/dtos/LoginResponseDto.ts @@ -6,4 +6,5 @@ import { UserDto } from "./UserDto.js"; export class LoginResponseDto { userData?: UserDto; token?: string; + expiryDate? : Date; } \ No newline at end of file diff --git a/src/utils/encryptionUtils.ts b/src/utils/encryptionUtils.ts index bc833f2..16cd5fb 100644 --- a/src/utils/encryptionUtils.ts +++ b/src/utils/encryptionUtils.ts @@ -4,6 +4,16 @@ import dotenv from "dotenv"; dotenv.config(); const { JWT_SECRET = "" } = process.env; + +export class tokenInfo{ + constructor(token: string, expiryDate: Date){ + this.token = token; + this.expiryDate = expiryDate; + } + token: string; + expiryDate: Date; +} + export class encrypt { static async encryptpass(password: string) { return bcrypt.hashSync(password, 12); @@ -13,8 +23,10 @@ export class encrypt { } static generateToken(payload: object) { - // @todo currently, we have an error here! - return jwt.sign(payload, JWT_SECRET, { expiresIn: "1d" }); + let expiryDate = new Date(); + expiryDate.setDate(expiryDate.getDate() + 1); // 1 day + const token = jwt.sign(payload, JWT_SECRET, { expiresIn: "1d" }); + return new tokenInfo(token, expiryDate); } static verifyToken(token: string) {