src/auth/jwt.strategy.ts
Methods |
|
constructor(userRepository: UserRepository)
|
||||||
|
Defined in src/auth/jwt.strategy.ts:10
|
||||||
|
Parameters :
|
| Async validate | ||||||
validate(payload: JwtPayload)
|
||||||
|
Defined in src/auth/jwt.strategy.ts:20
|
||||||
|
Parameters :
Returns :
Promise<User>
|
import { UserRepository } from './user.repository';
import { Injectable, UnauthorizedException } from '@nestjs/common';
import { PassportStrategy } from '@nestjs/passport';
import { Strategy, ExtractJwt } from 'passport-jwt';
import { InjectRepository } from '@nestjs/typeorm';
import { User } from './user.entity';
import { JwtPayload } from './jwt.payload.interface';
@Injectable()
export class JwtStrategy extends PassportStrategy(Strategy) {
constructor(
@InjectRepository(UserRepository)
private userRepository: UserRepository,
) {
super({
jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(),
secretOrKey: 'topsecret51',
});
}
async validate(payload: JwtPayload): Promise<User> {
const { username } = payload;
const user = await this.userRepository.findOne({ username });
if (!user) {
throw new UnauthorizedException();
}
return user;
}
}