getToken method
- @override
override
KO: 저장된 토큰 반환
EN: Returns saved tokens
Implementation
@override
Future<OAuthToken?> getToken() async {
if (_currentToken != null) {
return Future.value(_currentToken);
}
final version = await _preferences.getString(_versionKey);
// v1에서는 SharedPreferences에 저장했기 때문에 SharedPreferencesAsync에는 버전 값이 없을 수 있음.
if (version == null) {
_legacyPreferences ??= await SharedPreferences.getInstance();
final legacyVersion = _legacyPreferences?.getString(_versionKey);
if (legacyVersion != null && isV1Sdk(legacyVersion)) {
await _migrateV1Token();
}
}
final encryptedToken = await _preferences.getString(_tokenKey);
if (encryptedToken == null) {
return null;
}
try {
final jsonToken = _cipher.decrypt(encryptedToken);
_currentToken = OAuthToken.fromJson(jsonDecode(jsonToken));
} catch (e) {
await clear();
SdkLog.e(
'[DefaultTokenManager.getToken] decrypt_failed | action=cleared_saved_token',
);
}
return _currentToken;
}