author: krm created: 2022-05-22 status: alpha
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.
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
}
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.
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()
}
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");
}
Registera denna som ett midelware på path som ska kräver inloggning.
app.use("/secret/", isLoggedIn);
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.
Starta om server och gå in på sidan. Försök sedan logga in.