[READ ONLY MIRROR] Open Source TikTok alternative built on AT Protocol github.com/sprksocial/client
flutter atproto video dart
10
fork

Configure Feed

Select the types of activity you want to include in your feed.

fix: invalid sessions boot to login

+46 -3
+46 -3
lib/src/core/auth/data/repositories/auth_repository_impl.dart
··· 441 441 // Wait for initialization to complete first 442 442 await initializationComplete; 443 443 444 - if (_atProto == null || _oauthSession == null) { 444 + if (_atProto == null || 445 + _oauthSession == null || 446 + _did == null || 447 + _did!.isEmpty) { 445 448 return false; 446 449 } 447 450 448 451 try { 449 - await _atProto!.identity.resolveHandle(handle: _handle ?? ''); 452 + final sessionResponse = await _atProto!.server.getSession(); 453 + 454 + if (sessionResponse.data.did != _did) { 455 + _logger.w( 456 + 'Session DID mismatch. ' 457 + 'Expected $_did but got ${sessionResponse.data.did}', 458 + ); 459 + await logout(); 460 + return false; 461 + } 462 + 463 + final latestHandle = sessionResponse.data.handle; 464 + if (latestHandle.isNotEmpty && latestHandle != _handle) { 465 + _handle = latestHandle; 466 + await _saveSession(); 467 + } 468 + 450 469 return true; 451 470 } catch (e) { 452 471 // Try to refresh the token before giving up 453 472 final refreshed = await refreshToken(); 454 473 if (refreshed) { 455 - return true; 474 + try { 475 + final sessionResponse = await _atProto!.server.getSession(); 476 + 477 + if (sessionResponse.data.did != _did) { 478 + _logger.w( 479 + 'Session DID mismatch after refresh. ' 480 + 'Expected $_did but got ${sessionResponse.data.did}', 481 + ); 482 + await logout(); 483 + return false; 484 + } 485 + 486 + final latestHandle = sessionResponse.data.handle; 487 + if (latestHandle.isNotEmpty && latestHandle != _handle) { 488 + _handle = latestHandle; 489 + await _saveSession(); 490 + } 491 + 492 + return true; 493 + } catch (refreshError) { 494 + _logger.e( 495 + 'Session validation failed after token refresh', 496 + error: refreshError, 497 + ); 498 + } 456 499 } 457 500 458 501 await logout();