fix(redis): 修复 Redis 流读取兼容性问题

- 支持 bytes 和 str 类型的 entry_id
- 支持 list 类型响应格式
- 优化 payload 解码处理
This commit is contained in:
qzl
2026-03-11 21:33:25 +08:00
parent e4f69a64bd
commit 18db6c50e7
17 changed files with 359 additions and 54 deletions
@@ -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();
}