refreshToken method
토큰 갱신
Implementation
Future<AuthResult> refreshToken([AuthProvider? provider]) async {
_refreshCount++;
if (delay != null) {
await Future.delayed(delay!);
}
final targetProvider = provider ?? currentProvider;
if (targetProvider == null) {
return AuthResult.failure(
provider: AuthProvider.kakao,
errorMessage: '로그인된 상태가 아닙니다.',
errorCode: 'REFRESH_FAILED',
);
}
if (!targetProvider.supportsTokenRefresh) {
return AuthResult.failure(
provider: targetProvider,
errorMessage: '${targetProvider.displayName}은(는) 토큰 갱신을 지원하지 않습니다.',
errorCode: 'PROVIDER_NOT_SUPPORTED',
);
}
if (_currentUser == null) {
return AuthResult.failure(
provider: targetProvider,
errorMessage: '로그인된 상태가 아닙니다.',
errorCode: 'REFRESH_FAILED',
);
}
// 토큰 갱신 성공 - 만료 시간 연장
_expiresAt = DateTime.now().add(const Duration(hours: 1));
return AuthResult.success(
provider: targetProvider,
user: _currentUser,
accessToken: 'mock_refreshed_access_token',
refreshToken: 'mock_refreshed_refresh_token',
expiresAt: _expiresAt,
);
}