允许客户访问他们的 Stripe 订阅 ID 以简化数据库操作通常是安全的吗?
Is it generally safe to allow clients to have access to their Stripe Subscription ID's to simplify database operations?
我正在构建一个集中式 Stripe 端点来管理与用户条带相关的数据,例如订阅、支付方法等。使用 Elements 客户端和自定义 mongodb 端点。
充实端点时,我用于包含订阅的架构在一个数组中。
...
subscriptions:[{
subscriptionID:{
type: String
},
subscriptionUUID:{
type: String // unused
}
platform:{
type: String
},
status:{
type: Boolean
},
details:{
type: String
},
debutInvoice:{
type: String
}
}],
...
这给我留下了一个问题,我应该如何继续让用户管理他们的订阅?我应该让他们访问他们的 subscriptionID 吗?那安全吗?
编辑:Stripe 支持人员已确认公开 ID,如 si_xxxxx 和 sub_xxxxx 是安全的,因为它们与客户帐户相关联,而客户帐户又与您的私钥相关联!
简答:视情况而定。
只要您不以任何方式暴露您的 Stripe 密钥,您可能就没问题。
另外,如果每个客户都有一个唯一的标识符,并且有办法将该用户 ID 与任何其他类型的第三方服务 ID 和资源相关联,那么通常您想要的一切。
我不知道您的业务逻辑是什么,也不知道您的数据库架构是什么样的,但我想说的是,对于许多传统的用户订阅关系,您想要的只是跟踪来自任何用户 ID 的所有内容种类.
一些解决方法是:
- 使用密钥加密 Stripe ID,
或者——就像我在第二段提到的——:
- 让中间件服务执行 1:1 关系 - 获取相应的 Stripe 订阅资源。
经过一些讨论和编辑后,现在看来这是一个与模式相关的东西。我会说如果你有一个 User
集合和一个 subscriptions
数组 属性。然后它会简化事情。
所以:
const UserSchema = {
name: String,
email: String,
stripeCustomerId: String,
stripeSubscriptions: [String]
}
然后你可以query an array for an element在MongoDB.
我正在构建一个集中式 Stripe 端点来管理与用户条带相关的数据,例如订阅、支付方法等。使用 Elements 客户端和自定义 mongodb 端点。
充实端点时,我用于包含订阅的架构在一个数组中。
...
subscriptions:[{
subscriptionID:{
type: String
},
subscriptionUUID:{
type: String // unused
}
platform:{
type: String
},
status:{
type: Boolean
},
details:{
type: String
},
debutInvoice:{
type: String
}
}],
...
这给我留下了一个问题,我应该如何继续让用户管理他们的订阅?我应该让他们访问他们的 subscriptionID 吗?那安全吗?
编辑:Stripe 支持人员已确认公开 ID,如 si_xxxxx 和 sub_xxxxx 是安全的,因为它们与客户帐户相关联,而客户帐户又与您的私钥相关联!
简答:视情况而定。
只要您不以任何方式暴露您的 Stripe 密钥,您可能就没问题。
另外,如果每个客户都有一个唯一的标识符,并且有办法将该用户 ID 与任何其他类型的第三方服务 ID 和资源相关联,那么通常您想要的一切。
我不知道您的业务逻辑是什么,也不知道您的数据库架构是什么样的,但我想说的是,对于许多传统的用户订阅关系,您想要的只是跟踪来自任何用户 ID 的所有内容种类.
一些解决方法是:
- 使用密钥加密 Stripe ID,
或者——就像我在第二段提到的——:
- 让中间件服务执行 1:1 关系 - 获取相应的 Stripe 订阅资源。
经过一些讨论和编辑后,现在看来这是一个与模式相关的东西。我会说如果你有一个 User
集合和一个 subscriptions
数组 属性。然后它会简化事情。
所以:
const UserSchema = {
name: String,
email: String,
stripeCustomerId: String,
stripeSubscriptions: [String]
}
然后你可以query an array for an element在MongoDB.