static auth
2.1.2
Самый простой способ добавить базовую аутентификацию на статический веб -сайт, размещенный на Vercel.
Первоначально я создал это, чтобы добавить уровень аутентификации в свои проекты, размещенные на Vercel, но его можно использовать со встроенным http
-модулем Node и должен работать с 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) Проверка учетных данных через операторы
==
или===
делает ваш код уязвимым для атак с времени. Это может быть решено с помощью пакета безопасного компонента.
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])
Необходимый :
url
( String ): базовый URL для защиты с помощью базовой аутентификации. Используйте /
чтобы ограничить доступ ко всему веб -сайту, или /<path>
(например /admin
), чтобы ограничить доступ только в разделе вашего сайта.validator
( функция ): функция, которая принимает два параметра ( user
и pass
) и возвращает true
если предоставленные учетные данные предоставят доступ в ограниченную область.Необязательный :
[options]
( объект ):[directory]
( строка , по process.cwd()
. Например, если запрос на my-website.com/app.css
должен вернуть содержимое файла, расположенного по адресу ./www/app.css
(относительно скрипта узла), вы должны установить это на __dirname + '/www'
, в противном случае сценарий будет искать ./app.css
- который не существует - и вернет 404.[onAuthFailed]
( функция ): обратный вызов, который принимает один параметр ( res
, объект http.ServerResponse
), полезно, если вы хотите вернуть пользовательское сообщение об ошибке или HTML -страницу, когда предоставленные учетные данные недействительны.[realm]
( строка , по умолчанию 'default-realm'
): см. «Что такое« царство »в базовой аутентификации (StackOverflow).[serveStaticOptions]
( объект , по умолчанию {}
): параметры, которые можно передать в базовый модуль Servate-Static , который используется для обслуживания файлов (см. Пример использования здесь).