gpt4 book ai didi

node.js - 如何使用 Stripe 状态跟踪 Stormpath 身份验证 session ?

转载 作者:太空宇宙 更新时间:2023-11-04 00:44:29 25 4
gpt4 key购买 nike

我目前正在我的node.js 应用程序中使用express-stormpath 进行stormpath 身份验证。我也在用 Stripe 。我正在尝试找出如何正确存储 session 。以下是我计划在用户 session 中存储的内容:

session: {
sp_user: { //stormpath user details }
db_user: { //details from my DB }
stripe_expiraton: '234253843923' // unix timestamp
}

因此,在登录时,我计划为用户创建一个有效期为 7 天的 session 。在每次 API 调用时,express 中间件都会检查 strip 到期日期是否已到。如果有,或者没有过期日期,则意味着我们需要将用户重定向到付款页面。否则将假设一切正常并付款并继续。

我应该以这种方式存储 session 信息吗?我在 session 管理方面并不是很有经验。

最佳答案

我建议您将此信息存储在您的用户帐户的自定义数据存储中。 Stormpath 中的每个帐户都允许您存储所需的任何 JSON 信息。

这将是一个更好的解决方案,将数据存储在 session 中,因为如果只是客户端,用户可能随时删除数据。

另外:对于 Stripe 来说,在大多数情况下存储时间戳并没有什么意义。您通常进行计费的方式是:

  • 收集用户的结算信息。
  • 使用 Stripe 的 JS API 将其发送到 Stripe,然后您将收到一个 token 。
  • 将 token 发送到您的 Express 应用。
  • 使用该 token 创建 Stripe 客户对象。这样您将来就可以向用户计费。
  • 将 Stripe 客户 ID 存储在您的 Stormpath 自定义数据中,这样您就知道以后如何向用户计费!

通过上述流程,您可以在需要时自动向用户计费,而不是一直将他们重定向到付款页面。这也意味着您无需担心 session 过期等问题,只需在用户的卡过期或不再有效时将用户重定向到支付页面。

以下是在路线内执行此操作的方法:

app.post('/blah', stormpath.loginRequired, function(req, res, next) {
req.user.getCustomData(function(err, data) {
if (err) return next(err);
data.stripeCustomerId: 'xxx'
data.save(function(err) {
if (err) return next(err);
});
});
});

上述代码会将您的 Stripe 客户 ID 保存在您的 Stormpath 帐户中。

您可以随时检索此数据,方法是:

req.user.getCustomData(function(err, data) {
if (err) return next(err);
data.stripeCustomerId; // this will be the value you've previously stored
});

希望有帮助 =)

关于node.js - 如何使用 Stripe 状态跟踪 Stormpath 身份验证 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35318258/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com