Ich benutze Express js. Im Stammordner habe ich einen public
Ordner, der die Unterordner stylesheets
, javascripts
, fonts
, images
und html
enthält. Ich möchte meine Assets schützen, wenn der Benutzer nicht angemeldet ist. Wenn zum Beispiel jemand den Webbrowser öffnet und ohne Login eine Anfrage für http://localhost:3000/images/hello.jpg
macht, sollte die Anfrage zur Anmeldeseite umgeleitet werden.So deaktivieren Sie app.use (express.static ('/ public')); Express js
Um dies zu erreichen, verwende ich express.static(path.join(__dirname, '/public'))
bedingt.
Herausforderung 1
Login-Seite mit auch einige 4 bis 5 Assets (CSS und JS-Dateien), die in den gleichen öffentlichen Ordnern abgelegt werden.
Challenge 2
ich diesen Code express.static(path.join(__dirname, '/public'))
wie diese bin mit:
if(userIsLoggedIn){
express.static(path.join(__dirname, '/public'))
}else{
//what to do here???
//I need a code here which makes public folder as non-static folder
}
Zum Beispiel haben wir 2 Benutzer A und B. Beide Benutzer verwenden verschiedene Computer. Benutzer A führt eine erfolgreiche Anmeldung durch, und auf dem Server wird der Ordner public
als static
festgelegt, aber Benutzer B hat keine Anmeldung ausgeführt. Er greift jetzt direkt auf die Ressourcen zu, auf die er zugreifen kann.
Dies geschieht, weil wir den öffentlichen Ordner nicht als statisch auf Benutzerbasis festlegen. Wir machen ihn statisch, wenn einer der Benutzer eine erfolgreiche Anmeldung durchführt.
Fügen Sie eine Middleware hinzu, um vor allen geschützten Elementen auf ihre Authentifizierung zu prüfen. – krrish