条带webhook POST路由没有req.user

问题描述 投票:0回答:1

我正在使用ngrok在本地测试Stripe webhooks,以便可以将webhooks发送到localhost上的端点。

我想测试将客户和付款信息保存到我的数据库,但是,似乎中间件没有附加req.user(由Passport设置),就像它在任何其他路由上一样。这使得在访问经过身份验证的用户方面不太方便。

我可以在收到Stripe令牌的路由上进行数据库工作,但大量有用的信息是作为webhook发送的。另一种选择是在该阶段保存费用ID或客户ID,然后在稍后阶段查找用户,但这似乎是不必要的工作。

我有点困惑,为什么会这样,除非我遗漏了一些非常明显的东西。

router.post('/stripe/webhook', (req, res) => {

   console.log(req.user); //undefined
   res.sendStatus(200);

});
node.js express passport.js stripe-payments
1个回答
0
投票

你可以找到Stripe webhook mechanism here的细节

你需要解析持有有效载荷JSON的bodyrequest

接收端点示例:

app.post("/my/webhook/url", function(request, response) {

  // Retrieve the request's body and parse it as JSON
  var event_json = JSON.parse(request.body);
  // Do something with event_json
  response.send(200);
});

您可以通过测试JSON测试您的接收端点,您可以在条带的Event API中找到它!并且您使用许多应用程序(如POSTMAN)发送测试JSON(还有一个Chrome应用程序)

© www.soinside.com 2019 - 2024. All rights reserved.