Pavel Měsíček
11/26/2024, 11:18 AMrefreshTokens {
client.authProvider<BearerAuthProvider>()?.clearToken()
val oldTokens = applicationPersistence.getTokens()
val response = kotlin.runCatching {
client.submitForm(
FlavorConstants.authUrl + "token",
formParameters = parameters {
append("grant_type", "refresh_token")
append("client_id", FlavorConstants.authClientId)
append("refresh_token", oldTokens?.refreshToken.orEmpty())
},
) { markAsRefreshTokenRequest() }
}.getOrElse {
oldTokens?.also {
applicationPersistence.saveTokens(
accessToken = it.accessToken,
refreshToken = it.refreshToken,
idToken = it.idToken,
)
}
throw it
}
if (response.status == HttpStatusCode.OK) {
val body = response.body<TokenResponse>()
applicationPersistence.saveTokens(
accessToken = body.accessToken,
refreshToken = body.refreshToken,
idToken = body.idToken,
)
applicationPersistence.getTokens()?.let {
BearerTokens(it.accessToken, it.refreshToken)
} ?: run {
onNotAuthorized()
}
} else {
onNotAuthorized()
}
}
Aleksei Tirman [JB]
11/26/2024, 11:29 AMPavel Měsíček
11/26/2024, 11:46 AMPavel Měsíček
11/26/2024, 11:49 AM