Handle native app token refresh failure notification

This commit is contained in:
advplyr
2025-07-05 17:40:57 -05:00
parent b06274866d
commit fab94cd363
4 changed files with 21 additions and 4 deletions
@@ -126,8 +126,8 @@ class AbsDatabase : Plugin() {
val userId = serverConfigPayload.userId
val username = serverConfigPayload.username
val serverVersion = serverConfigPayload.version
val accessToken = serverConfigPayload.token // New token
val refreshToken = serverConfigPayload.refreshToken // Refresh only sent on first connection
val accessToken = serverConfigPayload.token
val refreshToken = serverConfigPayload.refreshToken // Refresh only sent after login or refresh
GlobalScope.launch(Dispatchers.IO) {
if (serverConnectionConfig == null) { // New Server Connection
@@ -404,7 +404,14 @@ class ApiHandler(var ctx:Context) {
errorObj.put("error", "Authentication failed - please login again")
callback(errorObj)
// TODO: Notify webview frontend
if (checkAbsDatabaseNotifyListenersInitted()) {
val tokenJsObject = JSObject()
tokenJsObject.put("error", "Token refresh failed")
absDatabaseNotifyListeners("onTokenRefreshFailure", tokenJsObject)
} else {
// Can happen if Webview is never run
Log.i(tag, "AbsDatabaseNotifyListeners is not initialized so cannot send token refresh failure notification")
}
} catch (e: Exception) {
Log.e(tag, "handleRefreshFailure: Error during failure handling", e)
val errorObj = JSObject()