[PHP] .htaccess 없이 똑같은 형태의 인증 구현하기

서버상에서 일부에게만 허용된 공간을 구축할때 간단한 방법으로 .htaccess와 .htpasswd를 조합한 인증 시스템을 구축하고 하는데요, 이것 역시 번거롭고 .으로 시작하는 파일이 숨김 파일이라 먼 훗날 유지보수시에 신경 못쓰는 경우도 종종 생기는것 같습니다. 이부분을 단지 코드상에서 간단하게 구현하기 위해서는 다음과 같은 방법을 사용할 수 있습니다.

<?php

define('MASTER_USER_NAME', 'master');
define('MASTER_USER_PASS', 'password');

$userName = isset($_SERVER['PHP_AUTH_USER']) ? $_SERVER['PHP_AUTH_USER'] : '';
$userPass = isset($_SERVER['PHP_AUTH_PW']) ? $_SERVER['PHP_AUTH_PW'] : '';

if ($userName != MASTER_USER_NAME || $userPass != MASTER_USER_PASS) {
	header('WWW-Authenticate: Basic realm="My Realm"');
	header('HTTP/1.0 401 Unauthorized');
	exit;
}

echo "Hello World";

?>

로그인을 정상적으로 성공하면 Hello World가 출력되는것을 볼 수 있습니다. 원래 구현하려던 부분을 이 echo 부분에 작성하시면 됩니다. 브라우저를 통해 접근할 시 다음과 같은 인증창이 뜨게 됩니다.

스크린샷 2013-12-03 오후 4.03.02

[Mac] 터미널 컬러링을 위한 초기 설정

맥을 처음에 초기화 하고 매번 터미널 컬러를 추가하기 위한 설정을 검색하다가 정리용으로 기록해 둡니다. 다음의 설정을 검은 배경을 기준으로 한 제가 사용하는 설정입니다.

~/.bash_profile 또는 ~/.profile 에 다음의 내용을 추가

export TERM=xterm-color
export CLICOLOR=1
export LSCOLORS=GxFxCxDxBxegedabagaced
export GREP_OPTIONS='--color=auto'
alias ls='ls -GFh'

~/.vimrc 에 다음의 내용을 추가 (컬러링만을 위한 예시)

:syntax on

다음은 제가 가장 선호하는 Tomorrow Night라는 터미널 테마입니다. 더블클릭하여 추가한뒤에 터미널 설정에서 선택가능합니다.

TomorrowNight.terminal