随机数 (Nonce)
随机数是用于验证请求来源和意图的数字,以实现安全目的。 您可以阅读更多关于 WordPress 代码库中的随机数 的信息。
需要使用随机数的 API 接口
对 /cart 接口的 POST 请求以及对所有 /checkout 接口的请求都需要使用随机数才能正常工作。 如果未提供有效的随机数,将返回错误响应,除非您正在使用 购物车令牌 代替。
通过请求发送随机数
随机数包含在请求头中。 创建一个名为 Nonce 的请求头。 API 将会验证此头。
示例:
curl --header "Nonce: 12345" --request GET https://example-store.com/wp-json/wc/store/v1/checkout
在成功发送请求后,将发送一个更新后的 Nonce 头,客户端需要将其存储并更新,以便进行后续请求。
从 WordPress 生成安全随机数
必须使用 wp_create_nonce 函数,并使用键 wc_store_api 来创建随机数。
wp_create_nonce( 'wc_store_api' )
没有其他机制可以用于创建随机数。
开发阶段禁用随机数验证
如果您想在不提供随机数的情况下测试 REST 接口,可以使用以下过滤器:
add_filter( 'woocommerce_store_api_disable_nonce_check', '__return_true' );
如果 woocommerce_store_api_disable_nonce_check 的值为 true,则会绕过随机数验证。
注意:这只应在不重要的安全性的开发环境中进行。 请勿在生产环境启用此功能。