static auth
2.1.2
La forma más simple de agregar autenticación básica a un sitio web estático alojado en Vercel.
Originalmente creé esto para agregar una capa de autenticación a mis proyectos alojados en VERCEL, pero también se puede usar con el módulo http
incorporado de Node y también debería funcionar con 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) Verificar las credenciales a través de los operadores
==
o===
hace que su código sea vulnerable a los ataques de tiempo. En su lugar, esto se puede resolver utilizando el paquete Safe-Comare.
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])
Requerido :
url
( cadena ): la URL base para proteger con la autenticación básica. Use /
para restringir el acceso a todo el sitio web, o /<path>
(por ejemplo /admin
) para restringir el acceso solo a una sección de su sitio.validator
( función ): una función que acepta dos parámetros ( user
y pass
) y devuelve true
si el acceso a las credenciales de inicio de sesión proporcionadas al área restringida.Opcional :
[options]
( objeto ):[directory]
( String , predeterminado a process.cwd()
): la ruta base para servir a los activos estáticos de. Por ejemplo, si una solicitud a my-website.com/app.css
debe devolver el contenido del archivo ubicado en ./www/app.css
(en relación con el script de nodo), entonces debe configurarlo en __dirname + '/www'
, de lo contrario, el script buscará ./app.css
, que no existe, y devolverá un 404.[onAuthFailed]
( función ): una devolución de llamada que acepta un parámetro ( res
, un objeto http.ServerResponse
), útil si desea devolver un mensaje de error personalizado o una página HTML cuando las credenciales proporcionadas no son válidas.[realm]
( String , predeterminado es 'default-realm'
): vea cuál es el "reino" en la autenticación básica (stackoverflow).[serveStaticOptions]
( objeto , predeterminado a {}
): opciones para pasar al módulo estático subyacente que se usa para servir los archivos (consulte un ejemplo de uso aquí).