Passport (Authentication)
Strategy
@Module({
imports: [
PassportModule,
// if implementing jwt strategy
JwtModule.register({
secret: jwtConstants.secret,
signOptions: { expiresIn: '60s' },
}),
],
controllers: [AuthController],
exports: [AuthService],
providers: [AuthService, StaartStrategy],
})
export class AuthModule {}import { Injectable, Logger } from '@nestjs/common';
import { PassportStrategy } from '@nestjs/passport';
import { Request } from 'express';
import { Strategy } from 'passport-strategy';
import { AuthService } from './auth.service';
class StaartStrategyName extends PassportStrategy(Strategy) {
name = 'staart';
}
@Injectable()
export class StaartStrategy extends PassportStrategy(StaartStrategyName) {
constructor(
private authService: AuthService,
) {
super();
}
private safeSuccess(result: AccessTokenParsed) {
return this.success(result);
}
async authenticate(request: Request) {
return this.success(result);
return this.fail('Invalid token', 401);
}
}Guard
Last updated