static auth
2.1.2
A maneira mais simples de adicionar autenticação básica a um site estático hospedado no Vercel.
Originalmente, criei isso para adicionar uma camada de autenticação aos meus projetos hospedados no Vercel, mas também pode ser usado com o módulo http
integrado do Node e deve funcionar com o 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) Verificação de credenciais através dos operadores
==
OR===
torna seu código vulnerável a ataques de tempo. Isso pode ser resolvido usando o pacote de compras seguras.
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])
Obrigatório :
url
( String ): o URL base para proteger com autenticação básica. Use /
para restringir o acesso a todo o site, ou /<path>
(por exemplo /admin
) para restringir o acesso apenas a uma seção do seu site.validator
( função ): uma função que aceita dois parâmetros ( user
e pass
) e retorna true
se as credenciais de login fornecidas concederem acesso à área restrita.Opcional:
[options]
( objeto ):[directory]
( String , Padrões para process.cwd()
): O caminho base para servir os ativos estáticos de. Por exemplo, se uma solicitação para my-website.com/app.css
devolver o conteúdo do arquivo localizado em ./www/app.css
(em relação ao script do nó), você deverá defini-lo como __dirname + '/www'
, caso contrário, o script procurará ./app.css
- que não existe - e retornará um 404.[onAuthFailed]
( função ): um retorno de chamada que aceita um parâmetro ( res
, um objeto http.ServerResponse
), útil se você deseja retornar uma mensagem de erro personalizada ou página HTML quando as credenciais fornecidas forem inválidas.[realm]
( String , Padrões para 'default-realm'
): Veja qual é o "reino" na autenticação básica (StackOverflow).[serveStaticOptions]
( objeto , padrões para {}
): opções para passar para o módulo estático subjacente usado para servir os arquivos (consulte um exemplo de uso aqui).