首页 > 解决方案 > Shopify - 发出 API 请求以更新用户的电子邮件

问题描述

使用 Shopify Admin API - 我已经能够更新用户的电子邮件地址。

我已经用 Postman 对其进行了测试,并传入了一个私有应用程序密钥。

现在我想在实际页面上有这个功能但是有一些问题:

有没有人有任何经验/想法/建议可以简单地做到这一点?

任何帮助表示赞赏。

谢谢。

标签: shopify

解决方案


问题:您的问题是要验证电子邮件更改请求是否是有效呼叫?然后,如果您发现它有效,那么您可以调用 API 来更新它。

我的解决方案
在 Shopify 中使用您的表单创建一个页面以更新电子邮件。仅向登录用户显示页面。当用户登陆页面时,向他们显示表单以传递他们想要的新电子邮件。您需要在此处添加一些内容以验证请求。当页面加载时,从 Shopify 后端创建一个散列字符串,如下所示。

{% if customer != nil %}
  {% assign timestamp = 'now' | date: "%s" %} //epoch time stamp
  token = {{ customer.email | append: '<random_string>' | append: timestamp | sha256 }}
{% endif %}

每当请求更改电子邮件时,通过在您的服务器上创建一个哈希来验证您最后的 SHA256 代码。如果哈希有效,则更新电子邮件。确保在您提出的请求中传递时间戳和旧电子邮件。

您需要注意的安全问题 -

  1. 您需要始终验证时间戳例如。它不应该是未来的 10 秒或过去的 10 秒。
  2. 您的随机字符串也可以被暴力破解。因此,请使用 Assets API 定期更新随机字符串。这是非常不可能的,但为什么要冒险。

推荐阅读