stripe-payments - Stripe - 所有这些不同的键是什么?
问题描述
所有这些键是什么?它们是如何使用的?
Dashboard
:
publishable_key
secret_key
restricted_key
webhook_signing_secret
前 3 个在 中可见Dashboard
。
所有这些密钥都在哪里使用?
我通过反复试验发现了什么:(我不知道这在生产中会是什么样子)
在 CLI 运行时解码事件:
Webhook.constructEvent(rawRequestBody, signature, WEBHOOK_SIGNING_SECRET)
全局设置 API 密钥
Stripe.apiKey = SECRET_KEY
我的问题是:
- 由于没有
Stripe CLI
在生产中运行,是否webhook_signing_secret
与secret_key
?(事件不通过 转发CLI
) - 为什么不能
Stripe CLI
创建一个带有签名密码编码的事件?它已经配置了publishable_key
andsecret_key
,为什么还需要一个新的呢? - 用在哪里
restricted_key
?
解决方案
- 客户端代码(例如 Stripe.js)使用可发布密钥来访问公共 API,主要用于标记卡信息。这可以防止您接触原始卡信息并承担重大的PCI 合规性负担。
- 密钥是您使用服务器端对 Stripe API 进行 API 调用的 API 密钥。秘密 API 密钥必须保持安全,并且应该被视为您帐户的密码,因为它们可以执行许多关键功能,例如创建付款、发放退款等。
- 受限密钥类似于秘密密钥,但它们减少了您在 Stripe Dashboard 中定义的权限。
- 您的 Webhook 端点代码使用Webhook 签名机密来验证发送到该代码的事件实际上来自 Stripe,而不是其他人伪装成 Stripe。
您可以在Stripe 的 API 密钥文档中阅读更多关于可发布、秘密和受限 API 密钥的信息。
由于没有
Stripe CLI
在生产中运行,是否webhook_signing_secret
与secret_key
?(事件不通过 转发CLI
)
不,它们完全不同,用于不同的事情。
为什么不能
Stripe CLI
创建一个带有签名密码编码的事件?它已经配置好了publishable_key
,secret_keys
为什么还需要一个新的呢?
在事件中包含 webhook 签名秘密会破坏目的,阻止安全措施发挥作用,并且不能代表事情在生产中的工作方式。
推荐阅读
- .net - 在 Microsoft Teams 上共享主窗口时,透明子窗口呈现为黑色
- python - Python if-else - 条件错误处理
- arrays - 打字稿说即使数组保证包含元素,array.pop() 也可能返回 undefined
- java - Spring Boot - CORS 过滤器适用于 GET,但不适用于其他 HTTP 动词
- node.js - 我的请求正文没有(?)进入我的应用程序
- .net - 如何为不同的环境发布 .NET Core + Angular 单页应用程序?
- laravel - 如何在 Dusk 测试中选择多个复选框
- javascript - 根据带有占位符的模式过滤字符串数组
- ruby-on-rails - 如何将多个复选框值保存到字符串?
- python - 根据多个字段的文本匹配和条件创建新字段。Python