@jmilanes/passport-remember-me
Version:
Passport strategy to authenticate users with remember me cookie.
72 lines (71 loc) • 2 kB
TypeScript
import { CookieOptions } from "express";
import { JwtPayload } from "jsonwebtoken";
export interface User {
id: string | number;
[key: string]: any;
}
export interface ConfigOptions {
salt: string;
cookieName: string;
cookie: CookieOptions;
keyName: string;
successRedirect?: string;
logErrors?: boolean;
}
export interface RememberMeOptions {
/**
* Unique salt string used to generate tokens.
* @required
*/
salt: string;
/**
* The name assign to cookies
* @default rememberMe
*/
cookieName?: string;
/**
* Cookie configuration, passed to cookie-parser.
*
* @default {
* path: '/',
* httpOnly: true,
* maxAge: 604800000 // maxAge: 7 days
* }
*/
cookie?: CookieOptions;
/**
* It looks for this key name in the request body, make sure
* to name your remember-me field the same.
*
* @default remember-me
*/
keyName?: string;
/**
* The success redirect route
*
* @default undefined
*/
successRedirect?: string;
/**
* A custom logger, you may also pass true to fallback
* to console.log, leaving it undefined will not log anything.
*/
logger?: boolean | GenericLoggerInterface;
}
export interface GenericLoggerInterface {
log: (...args: any[]) => void;
}
export type RefreshCallback = (err?: Error | null, user?: any) => void;
export type GetUserCallback = (userId: any, token: string, done: RefreshCallback) => void;
export type TokenResponse = {
error?: Error;
payload?: string | JwtPayload;
};
export type TokenCallback = (error?: Error, payload?: string | JwtPayload) => void;
export type EncodeResponse = {
error?: Error;
token?: string;
};
export type EncodeCallback = (err?: any, token?: any) => void;
export type TokenSavedCallback = (error?: Error) => void;
export type SaveTokenCallback = (token: string, userId: string, done: TokenSavedCallback) => void;