Closed mminhlequang closed 2 years ago
lỗi này xuất hiện trên ios
@lqmminh bạn đã fix được case này chưa b?
@huantd0111 chưa bạn ơi
@tiendung01023
Sau khi đọc kỹ lại code của bạn Dũng và tham triếu tài liệu của Zalo thì mình đang hiểu như này.
Sau khi đọc code thì em thấy root cause nằm ở chỗ này:
try { if (rs != null && rs['data'] != null && rs['data'] is Map<dynamic, dynamic>) { final Map<dynamic, dynamic>? data = rs['data'] as Map<dynamic, dynamic>?; data?['accessToken'] = data['access_token']; data?['refreshToken'] = data['refresh_token']; data?['expriedTime'] = data['expires_in']; data?.remove('access_token'); data?.remove('refresh_token'); data?.remove('expires_in'); } // ignore: empty_catches } catch (e) {}
Cơ bản là rs['data'] do ZaloSDK trả về khác nhau giữa Android và iOS, cụ thể trên iOS đang trả về 'accessToken', 'refreshToken', 'expriedTime'; còn Android đang trả về 'access_token', 'refresh_token', 'expires_in'; nên dẫn đến issue trên iOS.
@tiendung01023
@anhphongit Dạ đúng rồi anh, ban đầu em muốn sửa lại data bên android cho đồng bộ với iOS, mà do không chú ý check lại bên iOS, em sẽ hot-fix trước 1 bản cho mọi người, sau đó em sẽ sửa lại 1 bản chuẩn hơn Về refeshToken thì lần đầu sẽ khônng cần truyền, sau đó cần lưu lại để dùng cho những lần sau đúng rồi ạ
{isSuccess: true, data: {refreshToken: null, expriedTime: null, accessToken: null}} Hi anh, nhờ anh check hộ phần này