@@ -151,6 +151,12 @@ define(function (require, exports, module) {
151151 PreferencesManager . stateManager . set ( PREF_USER_PROFILE_VERSION , crypto . randomUUID ( ) ) ;
152152 }
153153
154+ /**
155+ * Calls remote resolveBrowserSession endpoint to verify login status. should not be used frequently.
156+ * @param silentCheck
157+ * @returns {Promise<void> }
158+ * @private
159+ */
154160 async function _verifyBrowserLogin ( silentCheck = false ) {
155161 console . log ( "Verifying browser login status..." ) ;
156162
@@ -161,28 +167,36 @@ define(function (require, exports, module) {
161167 isLoggedInUser = true ;
162168 ProfileMenu . setLoggedIn ( userProfile . profileIcon . initials , userProfile . profileIcon . color ) ;
163169 console . log ( "Browser login verified for:" , userProfile . email ) ;
170+ Metrics . countEvent ( Metrics . EVENT_TYPE . AUTH , "browser" , "OKLogin" ) ;
164171 return ;
165172 }
166173
167- // User is not logged in or error occurred
174+ // User is not logged in or error occurred if here
168175 if ( resolveResponse . err === ERR_NOT_LOGGED_IN ) {
169176 console . log ( "No browser session found. Not logged in" ) ;
170- // Only reset UI state if this is not a silent background check
171- if ( ! silentCheck ) {
172- _resetBrowserLogin ( ) ;
173- } else {
174- // For silent checks, just update the internal state
175- isLoggedInUser = false ;
176- userProfile = null ;
177- }
177+ Metrics . countEvent ( Metrics . EVENT_TYPE . AUTH , "browser" , "NotLoggedIn" ) ;
178+ _handleLoginError ( silentCheck ) ;
179+ return ;
180+ }
181+
182+ if ( resolveResponse . err === ERR_INVALID ) {
183+ console . log ( "Invalid auth token, resetting login state" ) ;
184+ Metrics . countEvent ( Metrics . EVENT_TYPE . AUTH , "browser" , "invalidLogin" ) ;
185+ _handleLoginError ( silentCheck ) ;
178186 return ;
179187 }
180188
181189 // Other errors (network, retry later, etc.)
182- console . log ( "Browser login verification failed:" , resolveResponse . err ) ;
190+ console . log ( "Browser login verification failed (temporary):" , resolveResponse . err ) ;
191+ Metrics . countEvent ( Metrics . EVENT_TYPE . AUTH , "browser" , "RetryLogin" ) ;
192+ // Don't reset login state for temporary errors, regardless of silent check
193+ }
194+
195+ function _handleLoginError ( silentCheck ) {
183196 if ( ! silentCheck ) {
184197 _resetBrowserLogin ( ) ;
185198 } else {
199+ // For silent checks, just update the internal state
186200 isLoggedInUser = false ;
187201 userProfile = null ;
188202 }
@@ -379,13 +393,15 @@ define(function (require, exports, module) {
379393 return ;
380394 }
381395
382- // Always verify login on browser app start (silent check to avoid closing popups)
383- _verifyBrowserLogin ( true ) . catch ( console . error ) ;
396+ // Always verify login on browser app start
397+ _verifyBrowserLogin ( ) . catch ( console . error ) ;
384398
385399 // Watch for profile changes from other windows/tabs
386400 const pref = PreferencesManager . stateManager . definePreference ( PREF_USER_PROFILE_VERSION , 'string' , '0' ) ;
387401 pref . watchExternalChanges ( ) ;
388- pref . on ( 'change' , _verifyBrowserLogin ) ;
402+ pref . on ( 'change' , ( ) => {
403+ _verifyBrowserLogin ( true ) . catch ( console . error ) ;
404+ } ) ;
389405
390406 // Note: We don't do automatic verification on page focus to avoid server overload.
391407 // Automatic checks are only done during the login waiting dialog period.
@@ -402,7 +418,9 @@ define(function (require, exports, module) {
402418 LoginService . signInToAccount = signInToBrowser ;
403419 LoginService . signOutAccount = signOutBrowser ;
404420 LoginService . getProfile = getProfile ;
405- LoginService . verifyLoginStatus = ( ) => _verifyBrowserLogin ( false ) ;
421+ // verifyLoginStatus Calls remote resolveBrowserSession endpoint to verify. should not be used frequently.
422+ // All users are required to use isLoggedIn API instead.
423+ LoginService . _verifyLoginStatus = ( ) => _verifyBrowserLogin ( false ) ;
406424 LoginService . getAccountBaseURL = _getAccountBaseURL ;
407425 init ( ) ;
408426 }
0 commit comments