Skapa en middelwer som bara tillåter inloggade personer

author: krm created: 2022-05-22 status: alpha

# 👁️‍🗨️ Om detta avsnitt

Du har skapat ett sätt att komma in på sidan. Gör nu så att detta krävs inloggning på alla sidor. För detta behöver vi ett middelware.

1 Deklarera ett midelware

Först deklarerar vi en funktion. Detta ska göra i main funktionen efter objektet som används för att lagra tokens.


function isLoggedIn(req:any, res:any, next:any) {
// CODE
}
  

2 Hämta användaren som motsvaras av kaka

Vi ska börja med att titta i kakan login och se vilken användare detta motsvarar.


let token = req.cookies.login??"";
let user = token_storage[token];
  

Observera att om toknet inte finns så kommer user få värdet undefined.

3 Kontrollera att användaren blivit inloggad

Vi kontollerar nu att user verkligen finns. Om så är fallet forsätter server med att se vad som ska göras härnäst med anropet.


if(user) {
next()
}
  

4 Om användare inte är inloggad.

Om det inte är så, då ska användare få ett meddelande om att den borde logga in.


else {
res.status(401).send("Not allowed");
console.error("Not allowed");
}
  

5 Registrera middelware

Registera denna som ett midelware på path som ska kräver inloggning.


app.use("/secret/", isLoggedIn);
  

✔️ 6. Skapa ett enkelt medelande som användaren måste logg in för att se

Gör en get funktion som är kopplat till pathen ovan. Det krävs nu ionlogg för att kunna läsa den.


app.get("/secret/test", function (req, res) {
res.send("Hello World!");
});
  

Tänk på att get funktion måste anropas efter midelwaret ovan.

7 ✔️ Starta om servern och testa anropet

Starta om server och gå in på sidan. Försök sedan logga in.