From e5a7364c7cd67ca1e08e6d9d767d9843f9f3793c Mon Sep 17 00:00:00 2001 From: Adrienne Rio Date: Fri, 24 Jan 2025 17:34:53 +0800 Subject: [PATCH 01/10] feat: store redirect metadata for traders hub from os-redirect --- .../core/src/App/Containers/OSRedirect/os-redirect.tsx | 4 ++++ packages/core/src/Modules/Callback/CallbackPage.tsx | 7 ++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/core/src/App/Containers/OSRedirect/os-redirect.tsx b/packages/core/src/App/Containers/OSRedirect/os-redirect.tsx index c99b2c04c6c0..69ad8e88e2a3 100644 --- a/packages/core/src/App/Containers/OSRedirect/os-redirect.tsx +++ b/packages/core/src/App/Containers/OSRedirect/os-redirect.tsx @@ -50,6 +50,10 @@ const OSRedirect = () => { ]; const route = routes_list.find(({ pattern }) => pattern.test(url_query_string)); route?.type && params.set('trade_type', route.type); + + if (route) { + sessionStorage.setItem('tradershub_redirect_to', `${route?.route}?${params.toString()}`); + } /** * Redirect to route if user is logged in * Need to wait logged in state to be updated before redirecting diff --git a/packages/core/src/Modules/Callback/CallbackPage.tsx b/packages/core/src/Modules/Callback/CallbackPage.tsx index bd24d093218f..e0661d28e136 100644 --- a/packages/core/src/Modules/Callback/CallbackPage.tsx +++ b/packages/core/src/Modules/Callback/CallbackPage.tsx @@ -14,7 +14,12 @@ const CallbackPage = () => { localStorage.setItem('config.account1', tokens.token1); localStorage.setItem('active_loginid', tokens.acct1); - window.location.href = routes.traders_hub; + const redirectTo = sessionStorage.getItem('tradershub_redirect_to'); + if (redirectTo) { + window.location.href = redirectTo; + } else { + window.location.href = routes.traders_hub; + } }} renderReturnButton={() => { return ( From 28e274386d39cd60389f9f676ee41330ef6f0f20 Mon Sep 17 00:00:00 2001 From: Adrienne Rio Date: Fri, 21 Feb 2025 15:23:40 +0800 Subject: [PATCH 02/10] Merge branch 'master' of github.com:deriv-com/deriv-app From 64fe2fa37a71bfe73119814ac0d8f8cd3908e074 Mon Sep 17 00:00:00 2001 From: Adrienne Rio Date: Wed, 26 Feb 2025 11:47:57 +0800 Subject: [PATCH 03/10] chore: fix self exclusion not logging out --- packages/core/src/Services/socket-general.js | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/packages/core/src/Services/socket-general.js b/packages/core/src/Services/socket-general.js index 6d8a3cdb4d93..e583aed3e2a4 100644 --- a/packages/core/src/Services/socket-general.js +++ b/packages/core/src/Services/socket-general.js @@ -13,6 +13,7 @@ import { localize } from '@deriv/translations'; import ServerTime from '_common/base/server_time'; import BinarySocket from '_common/base/socket_base'; import WS from './ws-methods'; +import { OAuth2Logout } from '@deriv-com/analytics'; let client_store, common_store, gtm_store; let reconnectionCounter = 1; @@ -141,9 +142,15 @@ const BinarySocketGeneral = (() => { const current_session_duration = session_duration_limit ? ServerTime.get() - moment(session_start_time) : 0; const remaining_session_time = duration * 60 * 1000 - current_session_duration; clearTimeout(session_timeout); - session_timeout = setTimeout(() => { - client_store.logout(); - sessionStorage.removeItem('session_start_time'); + session_timeout = setTimeout(async () => { + await OAuth2Logout({ + WSLogoutAndRedirect: () => { + client_store.logout(); + sessionStorage.removeItem('session_start_time'); + }, + redirectCallbackUri: `${window.location.origin}/callback`, + postLogoutRedirectUri: `${window.location.origin}/`, + }); }, remaining_session_time); } else if (!duration) { clearTimeout(session_timeout); @@ -326,7 +333,7 @@ const ResponseHandlers = (() => { // The maximum delay is capped at 10 minutes (600k ms). if (is_server_down) { const reconnectionDelay = - Math.min(Math.pow(2, reconnectionCounter + 9), 600000) * (0.5 + Math.random() * 1.5); + Math.min(2 ** (reconnectionCounter + 9), 600000) * (0.5 + Math.random() * 1.5); window.setTimeout(() => { reconnectionCounter++; From a90082dd3cfcf9e3d5be72aa7171770039dab55f Mon Sep 17 00:00:00 2001 From: Adrienne Rio Date: Wed, 26 Feb 2025 12:49:34 +0800 Subject: [PATCH 04/10] chore: fix self exclusion not logging out --- packages/core/src/Services/socket-general.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/packages/core/src/Services/socket-general.js b/packages/core/src/Services/socket-general.js index e583aed3e2a4..f4c71017dba6 100644 --- a/packages/core/src/Services/socket-general.js +++ b/packages/core/src/Services/socket-general.js @@ -13,7 +13,7 @@ import { localize } from '@deriv/translations'; import ServerTime from '_common/base/server_time'; import BinarySocket from '_common/base/socket_base'; import WS from './ws-methods'; -import { OAuth2Logout } from '@deriv-com/analytics'; +import { OAuth2Logout } from '@deriv-com/auth-client'; let client_store, common_store, gtm_store; let reconnectionCounter = 1; @@ -142,14 +142,13 @@ const BinarySocketGeneral = (() => { const current_session_duration = session_duration_limit ? ServerTime.get() - moment(session_start_time) : 0; const remaining_session_time = duration * 60 * 1000 - current_session_duration; clearTimeout(session_timeout); - session_timeout = setTimeout(async () => { - await OAuth2Logout({ + session_timeout = setTimeout(() => { + OAuth2Logout({ WSLogoutAndRedirect: () => { client_store.logout(); sessionStorage.removeItem('session_start_time'); }, redirectCallbackUri: `${window.location.origin}/callback`, - postLogoutRedirectUri: `${window.location.origin}/`, }); }, remaining_session_time); } else if (!duration) { From d957f874acf07a7ded0418abee598274313b7320 Mon Sep 17 00:00:00 2001 From: Adrienne Rio Date: Wed, 26 Feb 2025 12:54:02 +0800 Subject: [PATCH 05/10] chore: remove unrelated changes caused by linter From 78e6db64103eb8f026b15f38c7383bcc4aaa9ad7 Mon Sep 17 00:00:00 2001 From: Adrienne Rio Date: Wed, 26 Feb 2025 12:55:32 +0800 Subject: [PATCH 06/10] chore: remove unrelated changes caused by linter --- packages/core/src/Services/socket-general.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/src/Services/socket-general.js b/packages/core/src/Services/socket-general.js index f4c71017dba6..db1604b549c6 100644 --- a/packages/core/src/Services/socket-general.js +++ b/packages/core/src/Services/socket-general.js @@ -332,7 +332,7 @@ const ResponseHandlers = (() => { // The maximum delay is capped at 10 minutes (600k ms). if (is_server_down) { const reconnectionDelay = - Math.min(2 ** (reconnectionCounter + 9), 600000) * (0.5 + Math.random() * 1.5); + Math.min(Math.pow(2, reconnectionCounter + 9), 600000) * (0.5 + Math.random() * 1.5); window.setTimeout(() => { reconnectionCounter++; From 26a4152b6334bb1c43585dc6c099a791f4617583 Mon Sep 17 00:00:00 2001 From: Adrienne Rio Date: Wed, 26 Feb 2025 12:57:21 +0800 Subject: [PATCH 07/10] chore: fix linting issue with formatting --- packages/core/src/Services/socket-general.js | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/core/src/Services/socket-general.js b/packages/core/src/Services/socket-general.js index db1604b549c6..7b0c1e263fc2 100644 --- a/packages/core/src/Services/socket-general.js +++ b/packages/core/src/Services/socket-general.js @@ -149,6 +149,7 @@ const BinarySocketGeneral = (() => { sessionStorage.removeItem('session_start_time'); }, redirectCallbackUri: `${window.location.origin}/callback`, + postLogoutRedirectUri: `${window.location.origin}/` }); }, remaining_session_time); } else if (!duration) { From 22118504fdb24cccc4463033dffb83967fd449c2 Mon Sep 17 00:00:00 2001 From: Adrienne Rio Date: Wed, 26 Feb 2025 13:03:35 +0800 Subject: [PATCH 08/10] From e7ddf573076ed89236348b1df95a5a111157969d Mon Sep 17 00:00:00 2001 From: Adrienne Rio Date: Wed, 26 Feb 2025 15:31:08 +0800 Subject: [PATCH 09/10] chore: fix linting issue --- packages/core/src/Services/socket-general.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/src/Services/socket-general.js b/packages/core/src/Services/socket-general.js index 7b0c1e263fc2..06c3bf050645 100644 --- a/packages/core/src/Services/socket-general.js +++ b/packages/core/src/Services/socket-general.js @@ -149,7 +149,7 @@ const BinarySocketGeneral = (() => { sessionStorage.removeItem('session_start_time'); }, redirectCallbackUri: `${window.location.origin}/callback`, - postLogoutRedirectUri: `${window.location.origin}/` + postLogoutRedirectUri: `${window.location.origin}/`, }); }, remaining_session_time); } else if (!duration) { From 83b18249a684eaed43e84aed10c10dcddef471d9 Mon Sep 17 00:00:00 2001 From: Adrienne Rio Date: Wed, 26 Feb 2025 15:38:27 +0800 Subject: [PATCH 10/10]