最近在开发一个类unPKG
的一个代码库,选择了Fastify.js
的框架,这个框架相对express.js
比较小众,在配置Content-Type
的时候,总是获取不到buffer
二进制流。
// 增加 Content-type 解析器 -增加对buffer的支持
fastify.addContentTypeParser('*', { parseAs: 'buffer' }, function(
req,
body,
done
) {
done(null, body)
})
还有一个配置JWT
配置secret
// 配置jwt
fastify.register(jwt, {
secret: 'test'
})
获取Token
// 监听-注册token
fastify.post('/sign', async (request, reply) => {
const token = await reply.jwtSign(request.body)
reply.send({ token: token })
})
解密Token
拦截所有的 onRequest 的生命周期,每次在获取请求的时候进行解密。然后返回给监听
fastify.addHook('onRequest', async (request, reply) => {
try {
await request.jwtVerify()
} catch (err) {
reply.send(err)
}
})