NET的Shopify Multipass

时间:2019-02-15 15:22:21

标签: .net shopify

我正在尝试在我的“开发”商店中实施Shopify Multipass。我已启用Multiplass,并在“结帐”设置中设置了“需要帐户”。

通过API创建了一个新客户,并在查询该客户时得到以下结果:

    {
  "accepts_marketing": false,
  "addresses": [],
  "created_at": "2019-02-14T14:17:17-05:00",
  "currency": "USD",
  "default_address": null,
  "email": "m1@yahoo.com",
  "first_name": "M1",
  "multipass_identifier": null,
  "last_name": "M1",
  "last_order_id": null,
  "last_order_name": null,
  "note": null,
  "orders_count": 0,
  "phone": null,
  "state": "disabled",
  "tags": "",
  "tax_exempt": false,
  "total_spent": 0,
  "updated_at": "2019-02-14T14:17:17-05:00",
  "verified_email": true,
  "metafields": null,
  "id": 892572631087
}

我运行生成令牌的过程(使用.net nuget)

https://github.com/uoc1691/ShopifyMultipassTokenGenerator/tree/master/ShopifyMultipassTokenGenerator

使用此输入:

  string json = "{\"created_at\":\"2019-02-14T14:17:17-05:00\",\"email\":\"m1@yahoo.com\"}";
        var url = pass.Process(json);

        return Redirect(url);

这是生成的输出:

https://kitkatco.myshopify.com/account/login/multipass/A-8K9DQOTy_YFLqPv2UdB_iiubISltQy_bfASNtr8ylqsoz1uvx0JTPD06RdNUjX-26TCVp7NFjbjk1RNsYS20jH7YQNbzkikd6I613a3XLwU3XriMHRzEg8z4racDlzryst9PWmlS3_7pJbJN_dgVNHeadz3fz1z1L_e_JcyLo=

重定向后,我收到“无效的多次通过请求”

  • 我在做什么错了?
  • 只需确认一下,创建用户时multipass_identifier为NULL(应该为null吗?)
  • 我要实现的目的是为用户/密码保护shopify商店,以便仅允许(通过我的外部应用程序)登录的用户进入shopify商店/查看和购买产品。多通是为此目的吗?

任何帮助将不胜感激。

谢谢

1 个答案:

答案 0 :(得分:1)

  

Multipass登录适用于拥有单独网站和   Shopify商店。它将用户从网站重定向到Shopify   存储并使用相同的电子邮件地址无缝登录   用于注册原始网站。

因此,每当您使用有效的多通道URL重定向用户时,该用户都会登录,如果该用户不存在,则会先创建该用户,然后再登录。

  

multipass_identifier

     

在Shopify,我们使用电子邮件地址作为客户的唯一标识符   一家商店。如果您的网站使用其他标识符(例如用户名),或者   如果您网站的两个不同用户可能注册   使用相同的电子邮件地址,您必须在   “标识符”字段可避免安全问题。如果电子邮件地址是   始终是唯一的,您无需设置“标识符”字段。

因此,在普通帐户创建中,multipass_idenifier将为null,并且仅在通过multipass请求创建用户并且指定了 identifier 字段时才会填充。

created_at param is current timestamp (in ISO8601 encoding).

对于您上面提到的用例,如果您使用Shopify密码保护的商店功能,我认为它不会起作用。经过测试,它将您重定向到密码页面,并且相同的令牌无法再次使用。