static auth
2.1.2
Le moyen le plus simple d'ajouter une authentification de base à un site Web statique hébergé sur Vercel.
Je l'ai créé à l'origine pour ajouter une couche d'authentification à mes projets hébergés sur Vercel, mais il peut également être utilisé avec le module http intégré de Node et devrait fonctionner avec Express.
$ npm i static-auth -s
# or
$ yarn add static-auth const auth = require ( 'static-auth' ) ;
// Example with Vercel
module . exports = auth (
'/admin' ,
( user , pass ) => ( user === 'admin' && pass === 'admin' ) // (1)
) ;(1) La vérification des informations d'identification via les opérateurs
==OR===rend votre code vulnérable aux attaques de synchronisation. Cela peut être résolu en utilisant le package Safe-Compare à la place.
index.js
const auth = require ( 'static-auth' ) ;
// create a handler that will check for basic authentication before serving the files
const serveHandler = auth ( /* ... */ ) ;
// start the server
const http = require ( 'http' ) ;
const server = http . createServer ( serveHandler ) ;
server . listen ( 4444 , ( ) => console . log ( 'Listening on port 4444...' ) ) ; auth(url, validator, [options])
Requis :
url ( chaîne ): l'URL de base pour protéger avec l'authentification de base. Utiliser / pour restreindre l'accès à l'ensemble du site Web, OR /<path> (par exemple /admin ) pour restreindre l'accès uniquement à une section de votre site.validator ( fonction ): une fonction qui accepte deux paramètres ( user et pass ) et renvoie true si les informations d'identification de connexion fournies accordent l'accès à la zone restreinte.Facultatif :
[options] ( objet ):[directory] ( String , par défaut dans process.cwd() ): le chemin de base pour servir les actifs statiques de. Par exemple, si une demande à my-website.com/app.css doit renvoyer le contenu du fichier situé sur ./www/app.css (par rapport au script de nœud), vous devez le définir sur __dirname + '/www' , sinon le script recherchera ./app.css - qui n'existe pas - et renvoie un 404.[onAuthFailed] ( fonction ): un rappel qui accepte un paramètre ( res , un objet http.ServerResponse ), utile si vous souhaitez renvoyer un message d'erreur personnalisé ou une page HTML lorsque les informations d'identification fournies sont invalides.[realm] ( String , par défaut 'default-realm' ): voir quel est le «royaume» dans l'authentification de base (stackOverflow).[serveStaticOptions] ( objet , par défaut à {} ): options pour passer au module Serve-statique sous-jacent qui est utilisé pour servir les fichiers (voir un exemple d'utilisation ici).