Files
payload/src/auth/getExtractJWT.ts
2020-11-22 00:01:47 -05:00

28 lines
773 B
TypeScript

import { Request } from 'express';
import { Config } from '../config/types';
import parseCookies from '../utilities/parseCookies';
const getExtractJWT = (config: Config) => (req: Request): string | null => {
if (req && req.get) {
const jwtFromHeader = req.get('Authorization');
const origin = req.get('Origin');
if (jwtFromHeader && jwtFromHeader.indexOf('JWT ') === 0) {
return jwtFromHeader.replace('JWT ', '');
}
const cookies = parseCookies(req);
const tokenCookieName = `${config.cookiePrefix}-token`;
if (cookies && cookies[tokenCookieName]) {
if (!origin || (config.csrf && config.csrf.indexOf(origin) > -1)) {
return cookies[tokenCookieName];
}
}
}
return null;
};
export default getExtractJWT;