chore: add user get profile and check validity route
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
import { Injectable } from "@nestjs/common";
|
||||
import { ConfigService } from "@nestjs/config";
|
||||
import { JwtService } from "@nestjs/jwt";
|
||||
|
||||
import { ITokenPayload } from "../interfaces/IToken-payload";
|
||||
// import { UserRepository } from "../users/providers/users.repository";
|
||||
|
||||
@Injectable()
|
||||
export class TokensService {
|
||||
constructor(
|
||||
private readonly configService: ConfigService,
|
||||
private readonly jwtService: JwtService,
|
||||
// private readonly userRepository: UserRepository,
|
||||
) {}
|
||||
// ----------- generate token -----------------
|
||||
generateAccessAndRefreshToken(payload: ITokenPayload) {
|
||||
const access_expire = this.configService.getOrThrow<number>("ACCESS_TOKEN_EXPIRE");
|
||||
const refresh_expire = this.configService.getOrThrow<number>("REFRESH_TOKEN_EXPIRE");
|
||||
|
||||
const accessToken = this.jwtService.sign(payload, { expiresIn: `${access_expire}h` });
|
||||
|
||||
const refreshToken = this.jwtService.sign(payload, { expiresIn: `${refresh_expire}d` });
|
||||
|
||||
return {
|
||||
accessToken: { token: accessToken, expire: Date.now() + 1000 * 60 * 60 * access_expire },
|
||||
refreshToken: { token: refreshToken, expire: Date.now() + 1000 * 60 * 60 * 24 * refresh_expire },
|
||||
};
|
||||
}
|
||||
|
||||
//****************************** */
|
||||
// validateRefreshToken(token: string) {
|
||||
// const { sub } = this.verifyToken(token, "refresh");
|
||||
// return this.generateAccessAndRefreshToken({ sub: sub });
|
||||
// }
|
||||
|
||||
// verifyToken(token: string, type: "access" | "refresh"): ITokenPayload {
|
||||
// try {
|
||||
// if (type === "access") {
|
||||
// return this.jwtService.verify(token, {
|
||||
// secret: process.env.ACCESS_TOKEN_SECRET,
|
||||
// ignoreExpiration: false,
|
||||
// });
|
||||
// } else if (type === "refresh") {
|
||||
// return this.jwtService.verify(token, {
|
||||
// secret: process.env.REFRESH_TOKEN_SECRET,
|
||||
// ignoreExpiration: false,
|
||||
// });
|
||||
// } else throw new Error("Invalid token type => access / refresh");
|
||||
// } catch {
|
||||
// throw new HttpException(AuthMessage.LoginAgain, HttpStatus.UNAUTHORIZED);
|
||||
// }
|
||||
// }
|
||||
}
|
||||
Reference in New Issue
Block a user