switch to private cookies + make them last 1 month

This commit is contained in:
2025-08-13 14:56:47 +02:00
parent e120d19dc8
commit 161f4f4073
7 changed files with 254 additions and 23 deletions

View File

@@ -1,7 +1,7 @@
use crate::{
language::language,
page::{MyMessage, Page},
Backend, NameUpdateError,
AppState, Backend, NameUpdateError,
};
use axum::{
extract::{Path, State},
@@ -10,7 +10,7 @@ use axum::{
routing::{get, post},
Form, Router,
};
use axum_extra::extract::CookieJar;
use axum_extra::extract::PrivateCookieJar;
use maud::{html, Markup, PreEscaped};
use serde::Deserialize;
use std::sync::Arc;
@@ -18,7 +18,7 @@ use uuid::Uuid;
async fn index(
State(backend): State<Arc<Backend>>,
cookies: CookieJar,
cookies: PrivateCookieJar,
headers: HeaderMap,
) -> Response {
retu(backend, cookies, headers, None).await
@@ -26,7 +26,7 @@ async fn index(
async fn retu(
backend: Arc<Backend>,
cookies: CookieJar,
cookies: PrivateCookieJar,
headers: HeaderMap,
message: Option<MyMessage>,
) -> Response {
@@ -106,7 +106,7 @@ async fn retu(
async fn game(
State(backend): State<Arc<Backend>>,
cookies: CookieJar,
cookies: PrivateCookieJar,
headers: HeaderMap,
Path(uuid): Path<String>,
) -> Response {
@@ -135,7 +135,7 @@ async fn game(
retu(backend, cookies, headers, Some(message)).await
}
async fn not_found(cookies: CookieJar, headers: HeaderMap) -> Markup {
async fn not_found(cookies: PrivateCookieJar, headers: HeaderMap) -> Markup {
let lang = language(&cookies, &headers);
Page::new(lang).content(html! {
h1 { (t!("not_found_title")) }
@@ -149,7 +149,7 @@ struct NameForm {
async fn set_name(
State(backend): State<Arc<Backend>>,
cookies: CookieJar,
cookies: PrivateCookieJar,
headers: HeaderMap,
Form(form): Form<NameForm>,
) -> Response {
@@ -179,7 +179,7 @@ async fn set_name(
retu(backend, cookies, headers, Some(message)).await
}
pub(super) fn routes() -> Router<Arc<Backend>> {
pub(super) fn routes() -> Router<AppState> {
Router::new()
.route("/game", get(index))
.route("/game", post(set_name))