Shopify应用代理:发送客户数据或仅发送客户ID [英] shopify app proxy: send customer data or only customer ID
本文介绍了Shopify应用代理:发送客户数据或仅发送客户ID的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要获取服务器端逻辑的客户名和姓以及电子邮件地址。
依我看,有两个选项:
- 将请求正文中的数据提交给代理URL的表单
- 使用URL中的客户ID向代理URL发出GET请求,然后使用Shopify API获取所有客户信息
我倾向于使用选项#1,因为它节省了对Shopify的调用,我将通过https发送数据。
您建议如何执行此操作?
推荐答案
如果您要提交给代理表单,则应查看Gavin Ballard's post有关使用散列验证客户的信息。
我用application/liquid响应app proxy get时做了类似的事情。请参见下面示例中的reqHash字段。这是通过其标签对于任何动态值与Liquid不冲突的JJ处理的:
例如
{% if customer %}
<input name="firstName" id="firstName" type="hidden" value="{{customer.first_name}}">
<input name="lastName" id="lastName" type="hidden" value="{{customer.last_name}}">
<input name="defaultAddr" type="hidden" value="{{ customer.default_address.id }}">
<input type="hidden" name="custid" value="{{customer.id}}">
<input type="hidden" name="reqHash" value="{{customer.id | append: '<%= custSecret %>' | md5}}">
<div class="form-group">
<label for="emailAddress">Email</label>
<input name="emailAddress" id="emailAddress" type="text" value="{{customer.email}}" placeholder="Email">
</div>
{% else %}
<div class="form-group">
<label for="firstName">Name</label>
<input name="firstName" id="firstName" type="text" value="" placeholder="First Name">
<input name="lastName" id="lastName" type="text" value="" placeholder="Last Name">
</div>
<div class="form-group">
<label for="emailAddress">Email</label>
<input name="emailAddress" id="emailAddress" type="text" value="" placeholder="Email">
</div>
<div class="form-group">
<label for="CreatePassword" class="hidden-label">Password</label>
<input type="password" name="customer[password]" id="CreatePassword" class="input-full" placeholder="Password">
</div>
{% endif %}
,然后在表单发布时验证reqHash。
回复评论:
问题是你想对谁保守什么秘密。客户已经知道他们的信息。Shopify维护会话,因此他们相信信息与正确的ID相关联。SSL是一种安全的传输方式,因此只有在浏览器中才能清楚地显示客户信息。散列可以让应用程序确保客户信息与正确的ID相关联。这是应用程序验证登录的方式。否则,不良行为者可能会向该应用程序发送任意信息。发帖者写道,他们将从ID中查找客户信息,但仍然需要验证ID,以便他们知道他们拥有有效登录客户的正确ID。
事实上,自从我在2016年写下这篇文章以来,我已经开始散列我在隐藏输入中包含的所有信息。
哈希保护您的应用程序免受黑客和无聊的脚本小子的攻击。
这篇关于Shopify应用代理:发送客户数据或仅发送客户ID的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文