login cookie expiration

This commit is contained in:
Greg Shuflin 2025-02-03 01:36:32 -08:00
parent 10f6dfdf96
commit d6ac6c38ac
3 changed files with 10 additions and 1 deletions

1
Cargo.lock generated
View File

@ -2673,6 +2673,7 @@ dependencies = [
"rocket_dyn_templates",
"rss",
"sqlx",
"time",
"tokio",
"url",
"uuid",

View File

@ -19,3 +19,4 @@ url = { version = "2.5", features = ["serde"] }
feed-rs = "2.3.1"
reqwest = { version = "0.12.12", features = ["json"] }
tokio = "1.43.0"
time = "0.3.37"

View File

@ -1,3 +1,5 @@
use time::Duration;
use rocket::http::{Cookie, CookieJar, Status};
use rocket::serde::{json::Json, Deserialize, Serialize};
use rocket_db_pools::Connection;
@ -219,7 +221,12 @@ pub async fn login(
// Set session cookie
let user_id = Uuid::parse_str(&user.id).map_err(|_| Status::InternalServerError)?;
cookies.add_private(Cookie::new("user_id", user_id.to_string()));
//TODO make this user-configurable
let max_age = Duration::days(6);
let mut cookie = Cookie::new("user_id", user_id.to_string());
cookie.set_max_age(max_age);
cookies.add_private(cookie);
Ok(Json(LoginResponse {
user_id,