Shopify: ¿Cómo puedo manejar una desinstalación seguida de una reinstalación instantánea?

Recientemente tuve el caso de que un usuario desinstaló mi aplicación de Shopify y la reinstaló instantáneamente. Esto causó un problema porque almaceno todos mis usuarios en una tabla de base de datos.

El inicio de sesión / instalación funciona de la siguiente manera:

El usuario me dice su URL de la tienda.Reenvío al usuario a example.myshopify.com/admin/oauth/authorize donde se concede acceso a mi aplicaciónVerifico si la URL de la tienda ya está almacenada en mi base de datos de usuario localSi no: solicito un token de acceso permanente y reenvío al usuario a la página de selección de planEn caso afirmativo: recibo el token de acceso permanente almacenado de la base de datos del usuario y lo registro en mi aplicación

Desinstalación:

El usuario desinstala mi aplicación en su backend ShopifyShopify envía un webhook a mi aplicaciónQuito los datos de ese usuario de la base de datos del usuario

El problema es que los webhooks a veces se retrasan. Si un usuario se desinstala y se vuelve a instalar instantáneamente, mi aplicación pensará que la instalación es un intento de inicio de sesión y usará el token de acceso ahora no válido almacenado en la base de datos del usuario.

Pensé que podría verificar si la redirección de la página de autorización contiene un token de acceso temporal y, en caso afirmativo, sería una instalación nueva, pero parece que el token de acceso se devuelve incluso si la aplicación ya se ha instalado.

Entonces mi pregunta es: ¿Cómo puedo manejar la reinstalación instantánea con gracia? Seguramente hay algo que estoy pasando por alto, ¿no puede haber un "error lógico" tan grande en la API de Shopify?

Respuestas a la pregunta(1)

Su respuesta a la pregunta