From 49c4913aa460756e1f608e447428e7da0a561123 Mon Sep 17 00:00:00 2001 From: TheSaminator Date: Wed, 9 Feb 2022 07:35:10 -0500 Subject: [PATCH] Fix session renewal --- src/jvmMain/kotlin/starshipfights/auth/providers.kt | 2 +- src/jvmMain/kotlin/starshipfights/auth/utils.kt | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/jvmMain/kotlin/starshipfights/auth/providers.kt b/src/jvmMain/kotlin/starshipfights/auth/providers.kt index 2e2ec56..5cc67ac 100644 --- a/src/jvmMain/kotlin/starshipfights/auth/providers.kt +++ b/src/jvmMain/kotlin/starshipfights/auth/providers.kt @@ -401,7 +401,7 @@ class ProductionAuthProvider(val discordLogin: DiscordLogin) : AuthProvider { user = user.id, clientAddresses = listOf(call.request.origin.remoteHost), userAgent = userAgent, - expirationMillis = System.currentTimeMillis() + 86_400_000 + expirationMillis = System.currentTimeMillis() + EXPIRATION_TIME ) launch { User.put(user) } diff --git a/src/jvmMain/kotlin/starshipfights/auth/utils.kt b/src/jvmMain/kotlin/starshipfights/auth/utils.kt index 12bc316..5be91d8 100644 --- a/src/jvmMain/kotlin/starshipfights/auth/utils.kt +++ b/src/jvmMain/kotlin/starshipfights/auth/utils.kt @@ -8,12 +8,14 @@ import starshipfights.data.Id import starshipfights.data.auth.User import starshipfights.data.auth.UserSession +const val EXPIRATION_TIME = 86_400_000 + suspend fun Id.resolve(userAgent: String) = UserSession.get(this)?.takeIf { session -> session.userAgent == userAgent && session.expirationMillis > System.currentTimeMillis() } suspend fun UserSession.renewed(clientAddress: String) = copy( - expirationMillis = System.currentTimeMillis() + 900_000, + expirationMillis = System.currentTimeMillis() + EXPIRATION_TIME, clientAddresses = if (clientAddresses.last() != clientAddress) clientAddresses + clientAddress else clientAddresses ).also { UserSession.put(it) } -- 2.25.1