أقوم بإنشاء تطبيق جوال باستخدام React Native مدعوم بـ Discourse (التواصل عبر REST Api).
أستخدم تدفق مفاتيح واجهة برمجة تطبيقات المستخدم (User API Keys) لإجراء طلبات مصادق عليها و MessageBus للاستماع إلى أحداث مختلفة (تم تنفيذه بنجاح لحسن الحظ).
في الوقت الحالي، أقوم بتنفيذ الحالة التي يتم فيها إلغاء مفتاح واجهة برمجة التطبيقات (API Key)، وبالتالي إخبار المستخدم بشيء مشابه لـ “انتهت صلاحية جلستك”.
لهذا الغرض، حاولت الاشتراك في /logout/${current_user.id} (يبدو أنه ما يستخدمه Discourse في الواجهة الأمامية)، دون أي نجاح.
هل من الممكن أنني يجب أن أشترك في قناة أخرى أو أن هذا النوع من المعلومات لا يتم نقله حاليًا عبر MessageBus؟
الكود ذو الصلة:
const messageBus = MessageBus.getInstance();
/* Add the User-Api-Key header to message bus */
messageBus.setToken(currentAccount.apiKey);
messageBus.subscribe(`/logout/${currentAccount.id}`, () => {
console.log(`Logging out account ${currentAccount.username}`);
alert("Your session has expired. Please log in again.");
signOut({ reason: REASON_SESSION_EXPIRED });
/* When Revoken, only delete the account data from the storage */
});
شكراً! ![]()