fix: session refresh works as intended now (#5330)

* fix: session refresh works as intended now

* use code-defined defaults for expires and session_expires

* fix sqlx

* database migration drop defaults

* run fmt

* remove comment in migration

Signed-off-by: Xander <xander@isxander.dev>

---------

Signed-off-by: Xander <xander@isxander.dev>
This commit is contained in:
Xander
2026-02-26 17:33:09 +00:00
committed by GitHub
parent 1ab722411a
commit 017f6a5afb
15 changed files with 129 additions and 113 deletions

View File

@@ -25,6 +25,11 @@ pub struct SessionBuilder {
pub ip: String,
pub user_agent: String,
// When None, database default of 14 days will be used
pub expires: Option<DateTime<Utc>>,
// When None, database default of 60 days will be used
pub session_expires: Option<DateTime<Utc>>,
}
impl SessionBuilder {
@@ -38,11 +43,13 @@ impl SessionBuilder {
"
INSERT INTO sessions (
id, session, user_id, os, platform,
city, country, ip, user_agent
city, country, ip, user_agent,
expires, refresh_expires
)
VALUES (
$1, $2, $3, $4, $5,
$6, $7, $8, $9
$6, $7, $8, $9,
$10, $11
)
",
id as DBSessionId,
@@ -54,6 +61,10 @@ impl SessionBuilder {
self.country,
self.ip,
self.user_agent,
self.expires
.unwrap_or_else(|| Utc::now() + chrono::Duration::days(14)),
self.session_expires
.unwrap_or_else(|| Utc::now() + chrono::Duration::days(60)),
)
.execute(&mut *transaction)
.await?;