لا تقم بإزالة جميع اشتراكات الدفع عند تسجيل الخروج

كما يبدو أنه عند تسجيل خروج المستخدم، يتم حذف جميع اشتراكات الدفع. لذا، إذا كان المستخدم مسجلاً للدخول على أجهزة متعددة (هاتف، متصفح، جهاز لوحي) وتسجل الخروج من جهاز أو جلسة واحدة، فإن ذلك يمنع الأجهزة الأخرى من استقبال الإشعارات لأن اشتراكات الدفع الخاصة بها قد تم حذفها.

أذكر هذا لأنه يتعلق بمعرفة أي اشتراك يحتاج إلى استبدال أثناء التجديد، وأي اشتراك يجب حذفه عند تسجيل الخروج.

6 إعجابات

حسناً، لقد تم تسجيل خروجي من Meta اليوم، وبعد تسجيل الدخول، تلقيت إشعاراً لدفع بشأن مشاركتك… ما لم يكن الأمر مقتصراً فقط على مسار تسجيل الدخول الذي يبدأه المستخدم :thinking:

6 إعجابات

عند عودة المستخدم إلى المنتدى (أو تسجيل الدخول)، يتم إرسال اشتراكات المتصفح مرة أخرى وإعادة إنشائها. أما إذا قمت بتسجيل الخروج، فسيتم حذفها ولن يتم تسليم أي إشعارات دفع حتى يعود المستخدم إلى المنتدى من ذلك الجهاز.

هذا لا يتعارض مع ما ذكرته، حيث يبدو أنك تقصد أنك تلقيت إشعار الدفع بعد تسجيل الدخول.

مرجع الكود:

6 إعجابات

أوه، إذن هذا هو تمامًا ما كنت أشك فيه

اكتشاف رائع! يجب أن نصلح هذا بالتأكيد!

المشكلة هي أننا حاليًا لا نخزن الجهاز الذي توجد عليه اشتراك معين…

8 إعجابات

يحتوي Push API على دالة unsubscribe لإبطال اشتراك الإشعارات الدافعة:

عند تسجيل الخروج، يمكننا استدعاء هذه الدالة (على جانب العميل) مما سيجعل الاشتراك غير صالح على الخادم دون التأثير على أي اشتراكات أخرى.

في الواقع، يحتوي العميل بالفعل على دالة unsubscribePushNotification تقوم بذلك في تفضيلات “الإشعارات المباشرة”. ربما يكون الحل هو استدعاء هذه الدالة عند تسجيل الخروج من جانب العميل إذا كانت الإشعارات المباشرة مفعلة. ومن الجيد عملياً إلغاء مفاتيح اشتراك العميل بدلاً من مجرد حذفها من الخادم.

إعجابَين (2)

إذن يمكن أن يتكون الإصلاح من جزأين:

  1. احذف كود تنظيف الجانب الخادم.
  2. أضف كودًا جديدًا لإلغاء الاشتراك في جانب العميل.
5 إعجابات

تم الإنجاز في

https://meta.discourse.org/t/ios-android-push-notifications-on-self-hosted-discourse-docker/394149/18?u=falco

إعجاب واحد (1)

تم إغلاق هذا الموضوع تلقائيًا بعد 4 أيام. لم يعد السماح بردود جديدة.