From c2bf7d65ce97563a0de57774f35d39b519467f89 Mon Sep 17 00:00:00 2001 From: Kijin Sung Date: Tue, 11 Oct 2022 01:04:22 +0900 Subject: [PATCH] Automatically unregister device if the user logs out from mobile app --- modules/member/controllers/device.php | 22 ++++++++++++++++++++++ modules/member/member.controller.php | 5 +++-- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/modules/member/controllers/device.php b/modules/member/controllers/device.php index 6e5fa18d0..e194f9b3f 100644 --- a/modules/member/controllers/device.php +++ b/modules/member/controllers/device.php @@ -34,6 +34,28 @@ class Device extends \member return new \BaseObject; } + /** + * Automatically recognize device token from header or cookie and unregister it. + * + * @return \BaseObject + */ + public function autoUnregisterDevice(int $member_srl): \BaseObject + { + $device_token = $this->_getDeviceToken(); + if ($device_token) + { + $output = executeQuery('member.getMemberDevice', ['device_token' => $device_token]); + if ($output->data && $output->data->member_srl == $member_srl) + { + $args = new \stdClass; + $args->device_token = $output->data->device_token; + $output = executeQuery('member.deleteMemberDevice', $args); + return $output; + } + } + return new \BaseObject; + } + /** * Register device */ diff --git a/modules/member/member.controller.php b/modules/member/member.controller.php index 1ee863cd3..6944d12d1 100644 --- a/modules/member/member.controller.php +++ b/modules/member/member.controller.php @@ -131,14 +131,15 @@ class memberController extends member // Call a trigger after log-out (after) ModuleHandler::triggerCall('member.doLogout', 'after', $logged_info); - $output = new BaseObject(); + // If a device key is present, unregister it. + Rhymix\Modules\Member\Controllers\Device::getInstance()->autoUnregisterDevice($logged_info->member_srl); + $output = new BaseObject(); $config = ModuleModel::getModuleConfig('member'); if($config->after_logout_url) { $output->redirect_url = $config->after_logout_url; } - return $output; }