我最近有一个用户未安装在我的Shopify的应用程序,并立即重新安装它的情况。 因为我在我的所有用户都储存在一个数据库表这引起了一个问题。
登录/安装的工作原理如下:
- 用户告诉我,他的店铺网址
- 我转发用户example.myshopify.com/admin/oauth/authorize那里获得授予我的应用程序
- 我检查,如果那家商店的网址已储存在我的本地用户数据库
- 如果还没有,我申请永久性访问令牌和用户转发给计划选择页面
- 如果是的话:我从用户数据库存储的永久访问令牌和用户登录到我的应用程序
卸载:
- 用户卸载我的应用程序在他的Shopify后端
- Shopify发送一个网络挂接到我的应用程序
- 我从用户数据库中删除该用户的数据
问题是,网络挂接有时会延迟。 如果用户卸载,并立即重新安装,我的应用程序会认为安装是登录尝试,并且将使用存储在用户DB现在无效的访问令牌。
我想我可以只检查是否从授权页面重定向包含一个临时访问令牌,如果是,这将是一个新的安装,但似乎,即使应用程序已经被安装在返回的访问令牌。
所以我的问题是:我怎样才能妥善地处理即时重新安装? 当然还有那个我俯瞰,不可能有如此巨大的“逻辑错误”的Shopify API中的东西吗?