static auth
2.1.2
Vercel에서 호스팅 된 정적 웹 사이트에 기본 인증을 추가하는 가장 간단한 방법.
원래 Vercel에서 호스팅 된 내 프로젝트에 인증 계층을 추가하기 위해 이것을 만들었지 만 Node의 내장 http
모듈과 함께 사용할 수 있으며 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
( function ) : 두 개의 매개 변수 ( user
및 pass
)를 수용하고 제공된 로그인 자격 증명이 제한된 영역에 대한 액세스 권한을 부여하는 경우 true
반환하는 함수.선택 사항 :
[options]
( 개체 ) :[directory]
( 문자열 , 기본적으로 process.cwd()
) : 정적 자산을 제공하는 기본 경로. 예를 들어, my-website.com/app.css
에 대한 요청이 ./www/app.css
(노드 스크립트와 관련하여)에있는 파일의 내용을 반환 해야하는 경우 __dirname + '/www'
로 설정해야합니다. __dirname + '/www'
, 그렇지 않으면 스크립트는 존재하지 않는 ./app.css
를 찾아 404를 반환합니다.[onAuthFailed]
( function ) : 하나의 매개 변수 ( res
, http.ServerResponse
객체)를 수락하는 콜백, 제공된 자격 증명이 유효하지 않은 경우 사용자 정의 오류 메시지 또는 HTML 페이지를 반환하려는 경우 유용합니다.[realm]
( 문자열 , 기본값 'default-realm'
) : 기본 인증 (stackoverflow)의 "영역"이 무엇인지 확인하십시오.[serveStaticOptions]
( 객체 , 기본값 {}
) : 파일을 제공하는 데 사용되는 기본 서브 정적 모듈로 전달할 수있는 옵션 (여기서 사용 예제 참조).