gpt4 book ai didi

Shopify:如何处理卸载后立即重新安装?

转载 作者:行者123 更新时间:2023-12-04 01:54:39 24 4
gpt4 key购买 nike

我最近遇到了用户卸载我的 Shopify 应用程序并立即重新安装它的情况。这导致了一个问题,因为我将所有用户都存储在数据库表中。

登录/安装工作如下:

  • 用户告诉我他的店铺 URL
  • 我将用户转发到
    授予访问权限的 example.myshopify.com/admin/oauth/authorize
    到我的应用程序
  • 我检查该商店 URL 是否已存储在我的本地
    用户数据库
  • 如果不是:我请求永久访问 token 并转发
    用户到计划选择页面
  • 如果是:我从用户数据库获取存储的永久访问 token 并将用户登录到我的应用程序

  • 卸载:
  • 用户在他的 Shopify 后端卸载我的应用程序
  • Shopify 向我的应用发送 webhook
  • 我从用户数据库
  • 中删除了该用户的数据

    问题是 webhook 有时会延迟。如果用户卸载并立即重新安装,我的应用程序会认为安装是登录尝试,并将使用存储在用户数据库中的现在无效的访问 token 。

    我想我可以检查来自授权页面的重定向是否包含临时访问 token ,如果是,这将是一个新安装,但即使已经安装了应用程序,似乎也会返回访问 token 。

    所以我的问题是:如何优雅地处理即时重新安装?当然,我忽略了一些东西,Shopify API 中不可能有这么大的“逻辑错误”吗?

    最佳答案

    最近我的应用程序也遇到了这个问题。 Webhooks 在过去 2 个月才开始延迟,如果现在大多数应用程序没有遭受这种回归错误,我会感到惊讶。

    我处理它的方式是 - 当用户被重定向到应用程序并且旧的 db 对象/ token 仍然存在于数据库中时,尝试使用 token 调用 Shopify API 的虚拟 API 调用(类似于获取商店详细信息)你有。如果您收到 403 Unauthorized 响应,请使用户 session 无效并刷新存储的 token 。

    另一个问题是,在原始卸载 webhook 触发后一两分钟后,执行相同的过程 - 检查 403 响应。如果你 不要得到一个 403,那么你就知道 webhook 是旧的并且不应该被采取行动,因为如果你得到一个 200 OK 这意味着你的 token 是好的并且应用程序仍然被安装。

    这有点令人费解,它在我的应用程序中添加了相当多的代码,但这是我能在短时间内想到的唯一事情 - 因为商家确实经常快速卸载/重新安装。

    关于Shopify:如何处理卸载后立即重新安装?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14418415/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com