본문 바로가기
Font-End

내 사이트 방문시 입장코드, 초대코드, 비밀번호 입력하게 하기

by Junmannn 2024. 5. 30.
반응형

큰 웹사이트를 만들고 관리를 하다보면, 라이브 사이트에 올라가기 전, Staging 혹은 Test 서버라고 부르는 서버를 하나 더 만들게 됩니다. 정말 테스트를 말 그대로 해보는 거죠. 당연히 live 와 비슷한 데이터를 사용해야야겠죠, 하지만 동일한 db 를 사용하는건 아니죠. 라이브에 영향을 주지 않는 선에서 테스트를 해야 하니까요.

 

rails 에서는 이러한 설정을 아주 간단하게 할 수 있어요  

 

config/environments/production.rb 파일을 열어주고 코드를 몇줄만 추가할게요

Rails.application.configure do
  config.middleware.use Rack::Auth::Basic do |username, password|
    username == 'kyurasi' && password == 'junmannn'
  end
end

 

이렇게 하면 내 테스트 서버에 접근하는 순간 이러한 입장 제한을 할 수 있죠. 정말 쉽습니다ㅎㅎ

 

 

만일 js 로 하실 수도 있으니 이번에는 Express 를 사용한 간단한 인증 미들웨어 예시 코드를 남겨놓을게요. 잘 활용하시길 바랍니다

const express = require('express');
const basicAuth = require('express-basic-auth');

const app = express();

// 인증 미들웨어 설정
app.use(basicAuth({
  users: { 'kyurasi': 'junmannn' }, // 인증 정보 설정
  unauthorizedResponse: () => 'Unauthorized' // 인증 실패 시 응답 설정
}));

// 미들웨어를 통한 보호된 엔드포인트
app.get('/protected', (req, res) => {
  res.send('Protected resource');
});

// 서버 실행
app.listen(3000, () => {
  console.log('Server is running on port 3000');
});

 

 

 

아참, 만일 Webhook 을 사용하고 게시다면, 저렇게만 두면 오류가 발생할거에요. 그렇다면 Webhook 을 사용하는 서비스의 endpoint 에 아이디 비번이 포함이 되도록 수정해주시면 됩니다

 

만일 본인의 원래 endpoint 가 이랬었다면

https://staging.test_server.com/webhook_staging

 

이런 식으로 수정해주세요
https://ID에해당하는문자열:비밀번호에해당하는문자열@test_server.com/webhook_staging

제가 예시로 든 코드를 다시 endpoint 수정으로 예를 들게요.


사이트에 비밀번호를 걸기 전 endpoint 주소

https://staging.test_server.com/webhook_staging

 

사이트에 비밀번호를 걸고 난 후 endpoint 주소

ID : kyurasi,

PW : junmannn 이라고 한다면

https://kyurasi:junmannn@staging.test_server.com/webhook_staging

반응형