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).