use crate::prelude2::*;
use actix_session::Session;
pub async fn set_cookie(_request: HttpRequest, _session: Session) -> impl Responder {
match _session.insert("greeting", "哈哈哈") {
Ok(_) => {}
Err(e) => {
log::error!("session-insert: err={:?}", e)
}
}
let ctx = tera::Context::new();
_request.render(200, "developer/cookie/cookie_index.html", ctx)
}
pub async fn read_cookie(request: HttpRequest, session: Session) -> impl Responder {
let message = match session.get::<String>("greeting") {
Ok(message) => match message {
Some(message) => message,
None => "N/a".to_string(),
},
Err(e) => {
log::error!("session-read: err={:?}", e);
"N/a".to_string()
}
};
let mut ctx = tera::Context::new();
ctx.insert("greeting", &message);
request.render(200, "developer/cookie/cookie_read.html", ctx)
}
pub async fn set_cookie2(_request: HttpRequest, _session: Session) -> impl Responder {
HttpResponse::Ok()
.cookie(
actix_web::cookie::Cookie::build("your_cookie_name", "your_cookie_value")
.path("/") .secure(false) .http_only(false) .same_site(actix_web::cookie::SameSite::Lax) .finish(),
)
.content_type("text/plain")
.body("Ok")
}
pub async fn read_cookie2(request: HttpRequest, _session: Session) -> impl Responder {
let mut ctx = tera::Context::new();
if let Some(cookie) = request.cookie("your_cookie_name") {
ctx.insert("greeting", &cookie.value());
} else {
ctx.insert("greeting", "N/a");
}
request.render(200, "developer/cookie/cookie_read.html", ctx)
}