create-react-ssr-layout
Version:
A useful tool to quickly build a starting express server that uses custom SSR with a custom jsx render engine
34 lines (29 loc) • 1.06 kB
JavaScript
import jwt from 'jsonwebtoken';
import generateTokens from '../utils/generateTokens';
import cookiesConfig from '../config/cookiesConfig';
import 'dotenv/config';
export function verifyRefreshToken(req, res, next) {
try {
const currentRefreshToken = req.cookies.refreshToken;
const { user } = jwt.verify(currentRefreshToken, process.env.REFRESH_TOKEN_SECRET);
const { accessToken, refreshToken } = generateTokens({ user });
res.locals.user = user;
res
.cookie('accessToken', accessToken, cookiesConfig.access)
.cookie('refreshToken', refreshToken, cookiesConfig.refresh);
next();
} catch (error) {
console.log('Failed verification of the refresh token');
res.clearCookie('refreshToken').sendStatus(403);
}
}
export function verifyAccessToken(req, res, next) {
try {
const { accessToken } = req.cookies;
jwt.verify(accessToken, process.env.ACCESS_TOKEN_SECRET);
next();
} catch (error) {
console.log('Failed verification of the access token');
verifyRefreshToken(req, res, next);
}
}