Skip to main content

09_session/
09_session.rs

1use flyer::{
2    request::Request,
3    response::Response,
4    server,
5};
6
7pub async fn home_view(req: Request, res: Response) -> Response {
8    let user_id = req.session("user_id");
9    if user_id == "" {
10        return res.html("<h1>Not logged in</h1>");
11    }
12    return res.html(format!("<h1>Welcome user {}</h1>", user_id).as_str());
13}
14
15pub async fn login(_req: Request, res: Response) -> Response {
16    // Set session data
17    return res
18        .set_session("user_id", "1")
19        .back();
20}
21
22pub async fn logout(_req: Request, res: Response) -> Response {
23    // Remove session data
24    return res
25        .remove_session("user_id")
26        .back();
27}
28
29fn main() {
30    let server = server("127.0.0.1", 9999);
31
32    server.router().group("/", |router| {
33        router.get("/", home_view);
34        router.get("login", login);
35        router.get("logout", logout);
36    });
37
38    print!("\r\n\r\nRunning server: {}\r\n\r\n", server.address());
39
40    server.listen();
41}