src/auth/jwt.strategy.ts
Methods |
|
constructor()
|
|
Defined in src/auth/jwt.strategy.ts:7
|
| Async validate | ||||||
validate(payload: literal type)
|
||||||
|
Defined in src/auth/jwt.strategy.ts:24
|
||||||
|
Parameters :
Returns :
unknown
|
import { Injectable } from "@nestjs/common";
import { PassportStrategy } from "@nestjs/passport";
import { passportJwtSecret } from "jwks-rsa";
import { ExtractJwt, Strategy } from "passport-jwt";
@Injectable()
export class JwtStrategy extends PassportStrategy(Strategy) {
constructor() {
super({
jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(),
ignoreExpiration: false,
_audience: process.env.AWS_COGNITO_CLIENT_ID,
issuer: process.env.AWS_COGNITO_AUTHORITY,
algorithms: ["RS256"],
secretOrKeyProvider: passportJwtSecret({
cache: true,
rateLimit: true,
jwksRequestsPerMinute: 5,
jwksUri: process.env.AWS_COGNITO_AUTHORITY + "/.well-known/jwks.json",
}),
});
}
async validate(payload: { sub: string; email: string }) {
return {
idUser: payload.sub,
email: payload.email,
role: payload["custom:role"],
};
}
}