AppEngine标准环境Node.js应用Cron验证IP显示异常求助
AppEngine标准环境Node.js Cron请求IP验证问题解决方案
原因:AppEngine标准环境中,Cron服务的请求是直接在实例内部转发的,并非经过外部代理层,所以
request.ip会显示为127.0.0.1,且不会携带X-Forwarded-For头,这是环境的正常行为。正确验证方式:不要依赖IP或
X-Forwarded-For,改用AppEngine专属的X-Appengine-Cron请求头验证。这个头由Google的Cron服务自动添加,外部请求无法伪造,是官方推荐的验证方式。Fastify中实现验证的示例代码:
fastify.get('/your-cron-path', async (request, reply) => { if (request.headers['x-appengine-cron'] !== 'true') { return reply.status(403).send('无效的Cron请求'); } // 这里编写你的Cron任务逻辑 return { result: '任务执行成功' }; });
内容的提问来源于stack exchange,提问作者onlyanegg
相关产品推荐
相关产品推荐

