blob: ac7f3597538587f4ced38db2a98bab7958df0a28 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
import { HttpException, Injectable } from '@nestjs/common';
import * as jwt from 'jsonwebtoken';
import { JwtBodyDto } from 'server/dto/jwt_body.dto';
import { RefreshTokenBody } from 'server/dto/refresh_token_body.dto';
@Injectable()
export class JwtService {
issueToken(body: JwtBodyDto | RefreshTokenBody, expiresIn = '15m', key = process.env.ENCRYPTION_KEY): string {
return jwt.sign(body, key, { expiresIn });
}
issueRefreshToken(body: RefreshTokenBody) {
return this.issueToken(body, '1y', process.env.REFRESH_ENCRYPTION_KEY);
}
parseToken(token: string, key = process.env.ENCRYPTION_KEY): JwtBodyDto | RefreshTokenBody {
try {
return jwt.verify(token, key);
} catch (e) {
throw new HttpException('Invalid jwt token', 401);
}
}
parseRefreshToken(token: string) {
return this.parseToken(token, process.env.REFRESH_ENCRYPTION_KEY);
}
}
|