08_middleware/
08_middleware.rs1use flyer::{
2 request::Request,
3 response::{HTTP_UNAUTHORIZED, Response},
4 routing::next::Next, server
5};
6use serde::{Deserialize, Serialize};
7
8#[derive(Serialize, Deserialize)]
9pub struct JsonMessage {
10 message: String
11}
12
13pub async fn auth(req: Request, res: Response, next: Next) -> Response {
14 if req.header("authorization") != "my-secret-token" {
16 return res.status_code(HTTP_UNAUTHORIZED).json(&JsonMessage{
17 message: "Unauthorized Access".to_owned()
18 })
19 }
20
21 return next.handle(req, res);
23}
24
25fn main() {
26 let server = server("127.0.0.1", 9999);
27
28 server.router().group("api", |router| {
29 router.get("/", async |_req, res| {
30 return res.html("<h1>Authorized Access</h1>");
31 });
32 }).middleware(auth);
33
34 print!("\r\n\r\nRunning server: {}\r\n\r\n", server.address());
35
36 server.listen();
37}