import fastifyJwt from '@fastify/jwt' import fastifyPlugin from 'fastify-plugin' /** * plugin to handle fastify-jwt, descorate function to check for jwt * * @param {object} fastify * @param {object} opts * @param {Function} done * */ function jwt(fastify, opts, done) { // register jwt and add JWT_SECRET_KEY fastify.register(fastifyJwt, { secret: process.env.JWT_SECRET_KEY, cookie: { cookieName: 'token', signed: false } }) // add authenticate fastify.decorate('authenticate', async function (request, reply) { try { await request.jwtVerify() } catch (error) { return reply .code(401) .send() } }) done() } export default fastifyPlugin(jwt)