From: TheSaminator Date: Wed, 9 Feb 2022 12:35:10 +0000 (-0500) Subject: Fix session renewal X-Git-Url: https://gitweb.starshipfights.net/?a=commitdiff_plain;h=49c4913aa460756e1f608e447428e7da0a561123;p=starship-fights Fix session renewal --- 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) }