@jeaks03/overseer
Version:
Just another TypeScript Back-End framework
25 lines (24 loc) • 974 B
TypeScript
import { UserProvider } from "../../misc/custom-types";
import { Authentication, PasswordEncoder } from "./authentication";
import { PathInfo } from "../../routes/abstracts";
import { UserDetails } from "../user-details";
export declare class JWTAuthentication extends Authentication {
private expiresIn;
private secret;
/**
* @param expiresIn time in milliseconds or a string like '5h', '15m', etc. until the token expires
*/
constructor(expiresIn: number | string, userProvider: UserProvider, passwordEncoder: PasswordEncoder, secret: string);
createAccessToken(info: PathInfo): Promise<ExplicitJwtToken<UserDetails>>;
generateToken<T extends UserDetails>(user: T): ExplicitJwtToken<T>;
authenticate(info: PathInfo): Promise<UserDetails>;
}
export interface JwtToken<T extends UserDetails> {
iat: number;
exp: number;
user: T;
}
export interface ExplicitJwtToken<T extends UserDetails> {
token: string;
user: T;
}