tryRestoreToken method

Future<bool> tryRestoreToken()

Attempts to restore saved tokens from local storage.

Implementation

Future<bool> tryRestoreToken() async {
  final prefs = await SharedPreferences.getInstance();
  final token = prefs.getString('access_token');
  final expiresAt = prefs.getInt('expires_at');
  final refreshToken = prefs.getString('refresh_token');

  final now = DateTime.now().millisecondsSinceEpoch ~/ 1000;

  if (token != null && expiresAt != null && now < expiresAt - 60) {
    _accessToken = token;
    return true;
  }

  if (refreshToken != null) {
    try {
      await refreshAccessToken();
      return true;
    } catch (e) {
      return false;
    }
  }

  return false;
}