apollo-flash
Version:
A smart and efficient toolkit to quickly bootstrap an apollo-server project.
23 lines (22 loc) • 827 B
TypeScript
/// <reference types="node" />
import { Request } from "express";
import { VerifyOptions } from "jsonwebtoken";
import { AuthContext, GetScopeFromUser, GetUserFromId } from "./typings";
/**
* Class responsible to build application context.
*
* @export
* @class ContextBuilder
* @template AuthScopeEnum
* @template User
*/
export default class ContextBuilder<AuthScopeEnum, User> {
/**
* Get authorization from a JWT token if given with the request.
*
* @param {string} authorizationHeader
* @param {UserModel} model
* @returns {Promise<AuthContext>}
*/
getAuthorization(req: Request, getUserFromId: GetUserFromId<User>, getScopeFromUser: GetScopeFromUser<AuthScopeEnum, User>, jwtSigningKey: string | Buffer, verifyOpts: VerifyOptions): Promise<AuthContext<AuthScopeEnum, User>>;
}