From 945134f029388e6035bd7db53941bbb4ad3c9f6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A5=D0=B0=D0=BB=D0=B8=D0=BC=D0=BE=D0=B2=20=D0=A0=D1=83?= =?UTF-8?q?=D1=81=D1=82=D0=B0=D0=BC?= Date: Sun, 19 Apr 2026 22:55:38 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9D=D0=BE=D1=80=D0=BC=D0=B0=D0=BB=D1=8C?= =?UTF-8?q?=D0=BD=D1=8B=D0=B5=20=D1=82=D0=BE=D0=BA=D0=B5=D0=BD=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../8.5/executionHistory/executionHistory.bin | Bin 8881188 -> 8881188 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .../.gradle/8.5/fileHashes/fileHashes.bin | Bin 601450 -> 602350 bytes .../.gradle/8.5/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../8.5/fileHashes/resourceHashesCache.bin | Bin 609748 -> 635930 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes .../buildOutputCleanup/outputFiles.bin | Bin 1216421 -> 1216637 bytes client-mobile/auth/data/remote/api/AuthApi.kt | 6 +- .../auth/data/remote/dto/AuthDtos.kt | 5 ++ .../data/repository/AuthRepositoryImpl.kt | 37 +++++++++++- client-mobile/auth/domain/model/AuthModels.kt | 1 + .../auth/domain/repository/AuthRepository.kt | 1 + .../auth/presentation/AuthViewModel.kt | 12 ++++ client-mobile/core/network/AuthInterceptor.kt | 57 +++++++++++++++--- client-mobile/core/security/TokenManager.kt | 11 +++- 15 files changed, 116 insertions(+), 14 deletions(-) diff --git a/client-mobile/.gradle/8.5/executionHistory/executionHistory.bin b/client-mobile/.gradle/8.5/executionHistory/executionHistory.bin index c04d35425cae62fd2863f9b3ed9bb171fd63c800..2fd39529a425c5e0f4c7cb2389dfa01f790863b6 100644 GIT binary patch delta 70272 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 T_*;m-Mfh7>R-(ORO2+>I;CVh; delta 64923 zcmeFacUV(fw=Zmjm=F{K3Is58q$DJSXktN{35p`cf?%PjShfXFbnBL_pl-Vq6$Unn zy`X?C78I~=3&q|6yW0l#&K;R^0sFr1_nz;3&pG#e=iJ9X7SC^uHpd*Z wv?xb+ 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 diff --git a/client-mobile/.gradle/8.5/executionHistory/executionHistory.lock b/client-mobile/.gradle/8.5/executionHistory/executionHistory.lock index e5f550ce5abfb17544155564109ec6a0f42179a2..0ee66e14dc0f53658bc289a71022d9ce97576f5e 100644 GIT binary patch literal 17 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 EH(wOwUH||9 delta 53515 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

54_e&J8(JU}P80q+G_C96MIg6n}nU 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 diff --git a/client-mobile/.gradle/8.5/fileHashes/fileHashes.lock b/client-mobile/.gradle/8.5/fileHashes/fileHashes.lock index 3d161e4c20078619da2fa5aa51f2eb80544769e2..317ccbd5f48810520b16332f8b1a6c824e3f0c42 100644 GIT binary patch literal 17 WcmZSH&R@;(a=)o00|>Af&jtW0*aQ^- literal 17 WcmZSH&R@;(a=)o00|>AveFOk23%g_ zB@O^;pO2m5z$sn2#U3g7ELFV~B`?H^bz%J;OT~WkY!;Q>K=vyz8w&b*RUV$_*1)22 zN3?D&<_gRZQ_xhVC}+{6$oHQdIyxeA)VL076VlzAa06A>z6x|V4x594ex$n#yE7jC zXx2^7vVX=JB=)1S94rNbaQgjA$|?EGX$+k?%}EagV~`_>GXSRNTCJIv=E>647ts?6 zUkc$BH_x4D?G`PXg)BsP3J);!qOoKvs+fq2MVg6hbHH5*cxjW>?9-{sv{YR*&IJ#q z;EIr9^QWGHESkhaJG^i}K<@=FYW-p`7M01-79adRS2O9Zi>WQBZ#fYOU>&(%$SRk( zV+40c_WtLX*;y9#O{AX}5)8bSTvo|_Xv~5>uhBOQVQK)P7-=4%El?FeM01jTDhT9L z!JX)bu;U5e_=2W@dI%p9QOdpVm> zR2*qf!mY)^880_PvzL7H&=DCa#-Q8HwxFwz6SZg{x*#WQNw%Snb2SSf&wO$%CKi?6 zsyzHIqlDcsctvyniUt)NB@OlAuj1RkmrcK*?Wz`?Wk>-Z4fc{ih`MXYUvMBs>Uy%? z1kR6{{{G9joh(yrNl$ISmZF+2aykye8R&+WQ(;u;@uLGKJ8_&e(z~|ISs9G{}GxVUqCG@Ee!49`oZ!#4?;+d6${#~Wv> z`4DSP!=cll zgYJXuU29W0|6G{R?$mFnz-s+a{-5+eHDUnoZD^j>9d_D_bFu9H5F=Jc$C|IBquC}@ zy+eB+Sz&3MUeK($qHDcX z+PCk^oUthFal++ebFZ~%sGn4S7_T^Sr!!}6d7X1=MEiz2BN;cF>8RuVs=6Sjww0og z0Xjd15X@Rr>Tqt_b_IQR&@{t)dtS*%**IlX*CM(j;e3&s{=ko-CA9PnA@Fl@^1bSMu=cT^ABe5PSV*7uy+h)XxEtk-9Mkyi&kR?$2=?4vX7h`;|p)%AVH z+w_ueQ4K;mG9M`E_ut`^CSbGy1vxFrTBJ4}x^1>?)v6vJ I;7ov0IRcV6lWMTSzyqHnfdW#k9Z=g^JQH zLI_(86m3g4O+29*Ou?9KF=a0s9ji5BB3ewfh#IXt5>#jnkJcEIRpVn@h@C%^Oy-;U zzHc&JV++4|Z9(E56NWpNnZG7i`Ko6m`{qkm^2_49Y`#l_1(w>_&+k)x{XCewyR0M# zX6Mtb6Xtkp+qa|G@`5%Q4$Gd(Z0)6FYnue~$!otq_g7%^zNxC#bZ{!;`5m2~w9kXE zZKb?+V9=9{3_SWQ_-SY{lzV9L8d$<1sk- z)$W1J!!SnMJgmS^CyLn79R8KY-KSOHVIHPKYgiS+KQy|Q^*AWLo+X^ruz}@EO4PFD z;C=tzuKn$2L${dKFZ=g)(B`OdkW)iFi)QOZmo<3j2`YI5b)YXI?0yC*a_(kl=Fqh+ z)||=1n&Yk!m30oo2afkLI^OFz^mtmxN`W>I8W_x^Iun}>9@Y4{pJ;Bba03nHq0fYw zbae%;=JY@*R!cezs;75KT%H)*1~M*SUqH*J|Grd7Ah=jEC7%ThjwbY?kUF&n}$ z>l7uv7NtOQIaUJYSMj=1_?X%h@6joAgrCY*3vC{!t2WQhf&$wbx(c>cD{Hd1ERLo;Zf=N@2TM*^)iaA7omADi$2>XP6EXm#CHyw zG2uu61sX*rqpFBFEa;U#9a}(ckBS}&G>bw3mTgUVrfDt#dazs6vh<*VW5PX?uGqqv zG2O*rn8!}FHH>H8JZWy-!UH?t)V$AHft!nS2 h=m0gjjEpSM)JwTW`SgMNUCeY({!J_(RY!$U_8(i2RJQ;C diff --git a/client-mobile/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/client-mobile/.gradle/buildOutputCleanup/buildOutputCleanup.lock index 33b05b9aac3ade51b4b542103d3b31ace10a15e9..d07e95fa4d93f7158f38f7de15935aa1ca8a965d 100644 GIT binary patch literal 17 VcmZSf+M}~b{lVOB1~91I4*)W}1w#M; literal 17 VcmZSf+M}~b{lVOB1~8~i1OPH#1myq# diff --git a/client-mobile/.gradle/buildOutputCleanup/outputFiles.bin b/client-mobile/.gradle/buildOutputCleanup/outputFiles.bin index f8b929d099e2a814cf78ed1163852024ba06f169..e9010d64be2c805bf3041af21c29d689d760ac9b 100644 GIT binary patch delta 938 zcmXw%ZAepL6vsPvcirvkec3c?t+Ztt_F~IW=;gyKrDkX=ABP{}&5V*?18~iQ|&4#%0W4(U_sO--lYP@v8>}$=~<(#KpQX zWu6W*=hVv=G6~?Sj-HRz(cHmQ$i_)4=U6ID`g3x%uU9I{ZD>8hJqNJ566_o;4J|Du z*!h=bP>)mNyj>Q1;-_!5%v@4BFw4)+M#E{3=_*fbrTh;f|KeInp^rO;-gcD;=={iu z&}AFyWyr)V*N>K5?IEVi@_q@^nD>g<;z5IcW5gXFG++}GImt`TxY|s2wpVe#9Zv|6 zU5lZ^V=DPSVU+!Xf%8l`LuJbu;s$jZv6Mp<@eZ-A80cZ=ASCP>+!Bd{TZG&NP>Qj8 zgn<}Izk;7QaJxhi&&Tl+VRHl+Jf@!lDLgA~BeZ)qXtat1Qh7J&GpPGX=Uusg^f|yy zPUdSzsP|+h7-JcP-^kxIRm766?MLSoW-kQ8SA||;;4_;6jd>0d*uZG8)-9N)VHZBG z6b-Rb@2Boo*ScPX;{a*c0~?XOF6tpfQx4mq3>8RY4@BR2$RRJ*OC6Hq@zLsvvPVku z8$6UESrDPRWxgoxjFBk4mhpf27A_>JJ`GXEN;kQ$A zJ|iVJeXon1GAh0CxUF1{GD5Y-I|r<9RW?*w9wiD*S<8t+s7RFLlfX~gRl+KKak?lkcxO4Lmc`z5r3@I@(Z4*!Va QBpntf>9-yx7FIR#4}%h0!2kdN delta 701 zcmXYuT}V@57{_~#=XiF`cD|NrbEU4S7e%zK6cR6rOiV1Ml3@@miNZOksJuv$Loim7 zwm$5^h%}+Fg4!~9pt`UR1O;JTM7uH4!ai1hhy;Cp#@5RH*|M|VY_g`Q2-QMb0 z?+k1l?3-~o@vQ_?0F>NpbaNQ?7*RaqH9V1d1z0$i44PN?#9Hvtt786+N^K>4t}47- zrM%vchq{cOh_iwxXNA!G5H3=9Rv1<2=s&@c!xetRZCk8`kdX@BOQ41(_lPIg zQ}CGh48V)2pccjpE!se&EGV*ASR^V7%CXbXMX3*RvreH|`BxSkj=N$q`dj4Rm`Es5 zOdRJ9lIhZAj?C-QS)f3+Fby>95L6(4j&*kmqI83^P0Dmxu|3FzD{+^(QqU*MN%RM$ z0z%E(63} zx{84|br;UP;1|<!jAI`GiCTdJKA)M`^Y>I;^MB~qGr zq)wlQ8hqo`?o-&O?a0C8gjhvI)!Ls-`e@PY#13J^v?!tr-f5`BS%MC zb=e8cao2!7Z8)D;a{*vl(~8j8dn3lIh*CfLH)$hj()P4>W}LZZ=kgyUK1n}#H2+%m zE_3Z1(hrn^mwHmVBZJ0f^bQA!l}77oeC)H?aju-b*Zd-~T}Ao1G#hhrA Rl4*Gj5HZ~bnQnVg=syef3E2Pu diff --git a/client-mobile/auth/data/remote/api/AuthApi.kt b/client-mobile/auth/data/remote/api/AuthApi.kt index 9a68f1e..07a5104 100644 --- a/client-mobile/auth/data/remote/api/AuthApi.kt +++ b/client-mobile/auth/data/remote/api/AuthApi.kt @@ -2,6 +2,7 @@ package auth.data.remote.api import auth.data.remote.dto.AuthRequest import auth.data.remote.dto.AuthResponse +import auth.data.remote.dto.RefreshTokenRequest import core.domain.model.ServerConfigModel import retrofit2.http.Body import retrofit2.http.GET @@ -10,13 +11,14 @@ import retrofit2.http.POST interface AuthApi { @POST("auth/login") - @Headers("Cache-Control: no-cache") suspend fun login(@Body request: AuthRequest): AuthResponse @POST("auth/register") - @Headers("Cache-Control: no-cache") suspend fun register(@Body request: AuthRequest): AuthResponse + @POST("auth/refresh") + suspend fun refreshToken(@Body request: RefreshTokenRequest): AuthResponse + @GET("config") @Headers("Cache-Control: no-cache") suspend fun getConfig(): ServerConfigModel diff --git a/client-mobile/auth/data/remote/dto/AuthDtos.kt b/client-mobile/auth/data/remote/dto/AuthDtos.kt index 869964a..cac9089 100644 --- a/client-mobile/auth/data/remote/dto/AuthDtos.kt +++ b/client-mobile/auth/data/remote/dto/AuthDtos.kt @@ -9,6 +9,7 @@ data class AuthRequest( data class AuthResponse( @SerializedName("accessToken") val accessToken: String?, + @SerializedName("refreshToken") val refreshToken: String?, @SerializedName("user") val user: UserDto?, @SerializedName("userId") val userId: String?, @SerializedName("username") val username: String?, @@ -21,3 +22,7 @@ data class UserDto( @SerializedName("displayName") val displayName: String?, @SerializedName("avatarUrl") val avatarUrl: String? ) + +data class RefreshTokenRequest( + @SerializedName("refreshToken") val refreshToken: String +) diff --git a/client-mobile/auth/data/repository/AuthRepositoryImpl.kt b/client-mobile/auth/data/repository/AuthRepositoryImpl.kt index 5eaf0fb..8b6fae5 100644 --- a/client-mobile/auth/data/repository/AuthRepositoryImpl.kt +++ b/client-mobile/auth/data/repository/AuthRepositoryImpl.kt @@ -2,6 +2,7 @@ package auth.data.repository import auth.data.remote.api.AuthApi import auth.data.remote.dto.AuthRequest +import auth.data.remote.dto.RefreshTokenRequest import auth.domain.model.AuthResult import auth.domain.repository.AuthRepository import core.network.ServerConfig @@ -25,12 +26,13 @@ class AuthRepositoryImpl @Inject constructor( val token = response.accessToken ?: return Result.failure(Exception("Token is null")) val userId = response.userId ?: "" - tokenManager.saveToken(token, userId) + tokenManager.saveToken(token, userId, response.refreshToken) _isAuthenticated.value = true fetchConfig() Result.success( AuthResult( token = token, + refreshToken = response.refreshToken, userId = userId, userName = response.username ?: userName, displayName = response.displayName ?: response.username ?: userName, @@ -48,12 +50,13 @@ class AuthRepositoryImpl @Inject constructor( val token = response.accessToken ?: return Result.failure(Exception("Token is null")) val userId = response.userId ?: "" - tokenManager.saveToken(token, userId) + tokenManager.saveToken(token, userId, response.refreshToken) _isAuthenticated.value = true fetchConfig() Result.success( AuthResult( token = token, + refreshToken = response.refreshToken, userId = userId, userName = response.username ?: userName, displayName = response.displayName ?: response.username ?: userName, @@ -95,4 +98,34 @@ class AuthRepositoryImpl @Inject constructor( // Silent fail } } + + override suspend fun refreshToken(): Result { + val currentRefreshToken = tokenManager.getRefreshToken() + if (currentRefreshToken == null) { + return Result.failure(Exception("Refresh token is null")) + } + + return try { + val response = api.refreshToken(RefreshTokenRequest(currentRefreshToken)) + val newAccessToken = response.accessToken ?: return Result.failure(Exception("New access token is null")) + val newRefreshToken = response.refreshToken + val userId = response.userId ?: "" + + tokenManager.saveToken(newAccessToken, userId, newRefreshToken) + _isAuthenticated.value = true + + Result.success( + AuthResult( + token = newAccessToken, + refreshToken = newRefreshToken, + userId = userId, + userName = response.username ?: "", + displayName = response.displayName ?: "", + avatarUrl = null + ) + ) + } catch (e: Exception) { + Result.failure(e) + } + } } diff --git a/client-mobile/auth/domain/model/AuthModels.kt b/client-mobile/auth/domain/model/AuthModels.kt index 45d28bd..06ac946 100644 --- a/client-mobile/auth/domain/model/AuthModels.kt +++ b/client-mobile/auth/domain/model/AuthModels.kt @@ -2,6 +2,7 @@ package auth.domain.model data class AuthResult( val token: String, + val refreshToken: String?, val userId: String, val userName: String, val displayName: String, diff --git a/client-mobile/auth/domain/repository/AuthRepository.kt b/client-mobile/auth/domain/repository/AuthRepository.kt index 9237d30..781d4a7 100644 --- a/client-mobile/auth/domain/repository/AuthRepository.kt +++ b/client-mobile/auth/domain/repository/AuthRepository.kt @@ -10,4 +10,5 @@ interface AuthRepository { fun isAuthenticated(): Boolean fun isAuthenticatedFlow(): kotlinx.coroutines.flow.StateFlow suspend fun updatePushToken(token: String) + suspend fun refreshToken(): Result } diff --git a/client-mobile/auth/presentation/AuthViewModel.kt b/client-mobile/auth/presentation/AuthViewModel.kt index 990e87b..be8ab94 100644 --- a/client-mobile/auth/presentation/AuthViewModel.kt +++ b/client-mobile/auth/presentation/AuthViewModel.kt @@ -69,6 +69,18 @@ class AuthViewModel @Inject constructor( } } + fun refreshToken() { + viewModelScope.launch { + repository.refreshToken() + .onSuccess { + // Token refreshed successfully + } + .onFailure { + // Refresh failed, will trigger logout via AuthInterceptor + } + } + } + private fun updatePushToken() { FirebaseMessaging.getInstance().token.addOnCompleteListener { task -> if (task.isSuccessful) { diff --git a/client-mobile/core/network/AuthInterceptor.kt b/client-mobile/core/network/AuthInterceptor.kt index 16a9f3c..d0f8502 100644 --- a/client-mobile/core/network/AuthInterceptor.kt +++ b/client-mobile/core/network/AuthInterceptor.kt @@ -5,9 +5,7 @@ import okhttp3.Interceptor import okhttp3.Response import javax.inject.Inject import javax.inject.Singleton -import kotlinx.coroutines.launch -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.runBlocking @Singleton class AuthInterceptor @Inject constructor( @@ -15,6 +13,10 @@ class AuthInterceptor @Inject constructor( private val navigationManager: core.utils.NavigationManager, private val authRepositoryProvider: javax.inject.Provider ) : Interceptor { + + @Volatile + private var isRefreshing = false + override fun intercept(chain: Interceptor.Chain): Response { val token = tokenManager.getToken() val request = chain.request().newBuilder().apply { @@ -23,16 +25,55 @@ class AuthInterceptor @Inject constructor( } }.build() - val response = chain.proceed(request) + var response = chain.proceed(request) if (response.code == 401) { - // Global logout - kotlinx.coroutines.GlobalScope.launch(kotlinx.coroutines.Dispatchers.Main) { - authRepositoryProvider.get().logout() - navigationManager.logout() + // Attempt to refresh token synchronously + val refreshedToken = refreshAuthToken() + + if (refreshedToken != null) { + // Close the old response before retrying + response.close() + + // Retry the original request with the new token + val retryRequest = chain.request().newBuilder() + .addHeader("Authorization", "Bearer $refreshedToken") + .build() + response = chain.proceed(retryRequest) + } else { + // Refresh failed, logout + logoutUser() } } return response } + + private fun refreshAuthToken(): String? { + if (isRefreshing) { + // Already refreshing, wait and return current token + return tokenManager.getToken() + } + + return runBlocking { + isRefreshing = true + try { + val result = authRepositoryProvider.get().refreshToken() + if (result.isSuccess) { + result.getOrNull()?.token + } else { + null + } + } finally { + isRefreshing = false + } + } + } + + private fun logoutUser() { + runBlocking { + authRepositoryProvider.get().logout() + } + navigationManager.logout() + } } diff --git a/client-mobile/core/security/TokenManager.kt b/client-mobile/core/security/TokenManager.kt index abc4c4e..112ab94 100644 --- a/client-mobile/core/security/TokenManager.kt +++ b/client-mobile/core/security/TokenManager.kt @@ -20,11 +20,14 @@ class TokenManager @Inject constructor(context: Context) { EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM ) - fun saveToken(token: String, userId: String? = null) { + fun saveToken(token: String, userId: String? = null, refreshToken: String? = null) { val editor = prefs.edit().putString("jwt_token", token) if (userId != null) { editor.putString("user_id", userId) } + if (refreshToken != null) { + editor.putString("refresh_token", refreshToken) + } editor.apply() } @@ -32,11 +35,15 @@ class TokenManager @Inject constructor(context: Context) { return prefs.getString("jwt_token", null) } + fun getRefreshToken(): String? { + return prefs.getString("refresh_token", null) + } + fun getUserId(): String? { return prefs.getString("user_id", null) } fun deleteToken() { - prefs.edit().remove("jwt_token").remove("user_id").apply() + prefs.edit().remove("jwt_token").remove("user_id").remove("refresh_token").apply() } }