Shopify应用代理:发送客户数据或仅发送客户ID [英] shopify app proxy: send customer data or only customer ID

查看:9
本文介绍了Shopify应用代理:发送客户数据或仅发送客户ID的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要获取服务器端逻辑的客户名和姓以及电子邮件地址。

依我看,有两个选项:

  1. 将请求正文中的数据提交给代理URL的表单
  2. 使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆