fix(redis): 修复 Redis 流读取兼容性问题
- 支持 bytes 和 str 类型的 entry_id - 支持 list 类型响应格式 - 优化 payload 解码处理
This commit is contained in:
@@ -8,10 +8,15 @@ import 'models/auth_response.dart';
|
||||
class AuthRepositoryImpl implements AuthRepository {
|
||||
final AuthApi _api;
|
||||
final TokenStorage _tokenStorage;
|
||||
final Future<void> Function()? _onLogout;
|
||||
|
||||
AuthRepositoryImpl({required AuthApi api, required TokenStorage tokenStorage})
|
||||
: _api = api,
|
||||
_tokenStorage = tokenStorage;
|
||||
AuthRepositoryImpl({
|
||||
required AuthApi api,
|
||||
required TokenStorage tokenStorage,
|
||||
Future<void> Function()? onLogout,
|
||||
}) : _api = api,
|
||||
_tokenStorage = tokenStorage,
|
||||
_onLogout = onLogout;
|
||||
|
||||
@override
|
||||
Future<VerificationCreateResponse> createVerification(
|
||||
@@ -59,9 +64,16 @@ class AuthRepositoryImpl implements AuthRepository {
|
||||
|
||||
@override
|
||||
Future<void> deleteSession() async {
|
||||
if (_onLogout != null) {
|
||||
await _onLogout!();
|
||||
}
|
||||
final refreshToken = await _tokenStorage.getRefreshToken();
|
||||
if (refreshToken != null) {
|
||||
await _api.deleteSession(LogoutRequest(refreshToken: refreshToken));
|
||||
try {
|
||||
await _api.deleteSession(LogoutRequest(refreshToken: refreshToken));
|
||||
} catch (_) {
|
||||
// ignore API errors during logout
|
||||
}
|
||||
}
|
||||
await _tokenStorage.clear();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user