JWT와 쿠키/세션에 관한글을 먼저 작성하려했지만
JWT를 구현하는글을 먼저 작성해보려한다. (아직 이론정리가 잘 되지않음)
설치 과정 요약
- 설치 파일 다운로드: php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
의 명령어를 실행하여 composer-setup.php 파일을 다운로드. - 설치 스크립트 실행: php composer-setup.php --install-dir=/usr/local/bin 명령어를 실행하여 설치 파일을 실행.
- 설치 파일 이동: mv composer.phar /usr/local/bin/composer 명령어로 Composer 바이너리를 /usr/local/bin/ 디렉토리로 이동.
- 설치 확인: composer -v 명령어를 실행하여 Composer가 정상적으로 설치되었는지 확인
- WEB ROOT에서 composer require firebase/php-jwt 명령어 입력.
- 정상적으로 되었다면 vendor, coposer.json, composer.lock가 생김.
1. jwt값을 넘겨주고 받아오는과정 구현.
기존에 세션에 등록되어있는 ID 먼저 넘겨보기로 하였다.
결과는 보란듯이 실패.

에러 확인코드를 작성후

음 대충 캐치를 못한다는것 같다. 경로문제인가 싶었다.
검색해보니 위를 등록해주지않으면 외부 라이브러리를 불러오지 못한다고한다. 다시시도.

또다시 보이는 에러.
이번에는 버전 호환성문제로 파악된다.
php가 8.0 이상이여야하는데 7.4버전인게 문제가 되는것같다.
해결방법은 1차적으로 php 업그레이드를 해보려하였다.
-- 도커 내부쉘 접속 및 버전확인


php를 업그레이드 해보려 하였으나 8.0이상은 찾을수없다 > 실패
docker버전문제인가 싶어 docker를 업그레이드 해보려 하였으나 > 실패
dockerfile을 새로 작성해야 하나 생각중 jwt버전을 낮춰보기로 하였다.
우선 기존에 설치된 jwt를 모두 지워주었다.

이후 5.0버전으로 재설치.
student@segfault:~/webDev/webApp$ composer require firebase/php-jwt 5.0.0
이후 정상적으로 인코딩 된 값이 넘어오는걸 확인하였다


값이 넘어오는걸 확인하였으니 이걸 토대로 로그인시 cookie에 jwt를 담아 보내주고
기존 세션으로 로그인을 유지하였던것을 jwt값의 여부로 로그인을 유지하도록 만들어주었다.
<loginfunc.php>
<index.php>
이 과정에서 jwt값은 제대로 set되지만 쿠키를 받아오지 못하는일이 생겨 index로 못넘어가는 경우가 생겼는데.
setcookie('jwt', $jwt, time() + 3600, '/', '192.168.157.130', false, true);
부분을
setcookie('jwt', $jwt, time() + 3600, '/', '192.168.157.130', true, true);
로 작성하게되면 HTTPS에서만 쿠키가 전송되도록 설정되기때문에 발생했던 작은 헤프닝이 있었다.
정상적으로 작동 확인

'웹 해킹' 카테고리의 다른 글
| 쿠키, 세션 그리고 JWT (0) | 2025.05.19 |
|---|---|
| 게시판 CRUD, 페이징, 검색 (1) | 2025.05.13 |
| Hash와 로그인 식별/인증 (0) | 2025.04.22 |
| PHP / DB연동 데이터 삽입 및 불러오기 (0) | 2025.04.16 |
| NAT 네트워크 (0) | 2025.04.10 |