passport-fast-jwt
Version:
Passport authentication strategy for JSON Web Tokens using Fast-Jwt with support for EdDSA algorithm among others
44 lines (43 loc) • 1.44 kB
TypeScript
import Express from "express";
import PassportStrategy from "passport-strategy";
import { AfterVerifyCallback, TokenExtractor, Verifier, VerifierOptions } from "./types";
/**
* @example
* ```typescript
* passport.use(new JwtStrategy(jwtVerifier, tokenExtractor, (sections, done, req) => {
* User.findOne({ id: sections.payload.sub }, (error, user) => {
* if (error) {
* return done(err, false)
* }
* if (!user) {
* return done(null, false, "User not found", 404)
* }
* return done(null, user)
* })
* }))
*
* // *-----------* OR *-----------*
*
* passport.use(new JwtStrategy(verifierOptions, tokenExtractor, (sections, done, req) => {
* User.findOne({ id: sections.payload.sub }, (error, user) => {
* if (error) {
* return done(err, false)
* }
* if (!user) {
* return done(null, false, "User not found", 404)
* }
* return done(null, user)
* })
* }))
* ```
*/
export declare class JwtStrategy extends PassportStrategy.Strategy {
name: string;
private extractToken;
private verifyJwt;
private afterVerifiedCb;
constructor(verifierOptions: VerifierOptions, tokenExtractor: TokenExtractor, afterVerifiedCb: AfterVerifyCallback);
constructor(jwtVerifier: Verifier, tokenExtractor: TokenExtractor, afterVerifiedCb: AfterVerifyCallback);
private createSections;
authenticate(req: Express.Request): Promise<void>;
}