UNPKG

@jmilanes/passport-remember-me

Version:

Passport strategy to authenticate users with remember me cookie.

72 lines (71 loc) 2 kB
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;