27 lines
611 B
TypeScript

import Csurf from 'csurf'
import {THandler} from './THandler'
import {IMiddleware} from './IMiddleware'
import {UrlWithStringQuery} from 'url'
export interface ICSRFParams {
baseUrl: UrlWithStringQuery
cookieName: string
}
export class CSRFMiddleware implements IMiddleware {
readonly handle: THandler
constructor(readonly params: ICSRFParams) {
this.handle = Csurf({
cookie: {
signed: true,
httpOnly: true,
sameSite: true,
secure: params.baseUrl.protocol === 'https',
path: params.baseUrl.path,
key: params.cookieName,
},
})
}
}