From: TheSaminator Date: Sat, 9 Apr 2022 17:56:03 +0000 (-0400) Subject: Renormalize session expiration time X-Git-Url: https://gitweb.starshipfights.net/?a=commitdiff_plain;h=a73cd1b0e3b1a5bd62e6ef88583de289182678bc;p=starship-fights Renormalize session expiration time --- diff --git a/src/jvmMain/kotlin/starshipfights/auth/providers.kt b/src/jvmMain/kotlin/starshipfights/auth/providers.kt index 96b4c89..bf19be4 100644 --- a/src/jvmMain/kotlin/starshipfights/auth/providers.kt +++ b/src/jvmMain/kotlin/starshipfights/auth/providers.kt @@ -419,7 +419,7 @@ object TestAuthProvider : AuthProvider { user = user.id, clientAddresses = listOf(originAddress), userAgent = userAgent, - expiration = Instant.now().plus(1, ChronoUnit.HOURS) + expiration = newExpiration() ).also { UserSession.put(it) } @@ -598,7 +598,7 @@ class ProductionAuthProvider(private val discordLogin: DiscordLogin) : AuthProvi user = user.id, clientAddresses = if (user.logIpAddresses) listOf(call.request.origin.remoteHost) else emptyList(), userAgent = userAgent, - expiration = Instant.now().plus(1, ChronoUnit.HOURS) + expiration = newExpiration() ) coroutineScope { diff --git a/src/jvmMain/kotlin/starshipfights/auth/utils.kt b/src/jvmMain/kotlin/starshipfights/auth/utils.kt index 5e8307b..fb7b240 100644 --- a/src/jvmMain/kotlin/starshipfights/auth/utils.kt +++ b/src/jvmMain/kotlin/starshipfights/auth/utils.kt @@ -20,8 +20,10 @@ suspend fun Id.resolve(userAgent: String) = UserSession.get(this)?. session.userAgent == userAgent && session.expiration > Instant.now() } +fun newExpiration(): Instant = Instant.now().plus(2, ChronoUnit.HOURS) + suspend fun UserSession.renewed(clientAddress: String) = copy( - expiration = Instant.now().plus(2, ChronoUnit.HOURS), + expiration = newExpiration(), clientAddresses = if (User.get(user)?.logIpAddresses != true) emptyList() else if (clientAddresses.lastOrNull() != clientAddress)