问题描述
我对Cookie完全陌生。 我现在正在尝试学习cookie。
在我的项目中,我正在使用fastify-jwt
来为用户设置令牌。
现在,我正在尝试使用fastify-cookie
。
对于fastify-jwt,遵循他们的示例非常简单。
import * as fp from 'fastify-plugin';
export default fp(async (server,opts) => {
server.register(fastifyJwt,{
secret: config.get('app').secret,});
server.decorate('authenticate',async (request,reply) => {
try {
await request.jwtVerify();
} catch (err) {
reply.send(err);
}
});
});
使用jwt
export default fp(async (server,opts,next) => {
server.route({
method: ['GET'],url: '/users/:id',logLevel: 'warn',preValidation: [server.authenticate],handler: async (request,reply) => {
try {
const user = await server.db.models.User.findOne({
_id: request.params.id,}).lean();
if (!user) {
return reply.send(404);
}
// @ts-ignore
if (request.user?.user?.id !== user._id.toString()) {
reply.status(401);
return reply.send({
success: false,error: 'Invalid Login',message: 'Token is invalid',});
}
return reply.code(200).send(user);
} catch (error) {
request.log.error(error);
return reply.send(400);
}
},});
}
这对我来说很好,但是为了固定cookie,我从一开始就遇到了错误 这是我的代码
server.register(require('fastify-cookie'),(err) => {
if (err) throw err
})
server.decorate('authenticate',async ( request,reply ) => {
const aCookieValue = request.headers.cookie.cookieName;
try{
reply.setCookie('foo','foo',{
domain: "localhost:3000",// need to set all path
path: '/'
}).send({hello: 'world'})
}catch(err){
reply.send(err);
}
})
如您所见,我正在尝试遵循fastify-cookie document,但无法正常工作。 我正在使用fastify v2。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)