add: progress authentication

This commit is contained in:
ilham
2021-12-06 09:12:52 +07:00
parent 5bbb650acd
commit 2b5abc7689
12 changed files with 154 additions and 40 deletions

View File

@@ -0,0 +1,10 @@
import * as crypto from 'crypto';
export function hashPassword(password, salt): Promise<string> {
return new Promise((resolve, reject) => {
crypto.pbkdf2(password, salt, 50, 100, 'sha512', (err, values) => {
if (err) return reject(err);
resolve(values.toString('hex'));
});
});
}

View File

@@ -0,0 +1,22 @@
import { PassportStrategy } from '@nestjs/passport';
import { ExtractJwt, Strategy } from 'passport-jwt';
import { Injectable } from '@nestjs/common';
import { AuthService } from '../auth/auth.service';
@Injectable()
export class JwtStrategy extends PassportStrategy(Strategy) {
constructor(private readonly authService: AuthService) {
super({
jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(),
secretOrKey: process.env.SECRETKEY,
});
}
async validate(payload: JwtPayload): Promise<UserDto> {
const user = await this.authService.validateUser(payload);
if (!user) {
throw new HttpException('Invalid token', HttpStatus.UNAUTHORIZED);
}
return user;
}
}