📘 Day 40 (2025.08.09.SAT) - 프레임워크(로그인, 회원가입, CSRF 필터)


🛠️ 프레임워크 과정

1. 🏗️ 프레임 구조를 정한다.

프레임명: main_frame

2. 📋 메뉴를 정한다.

예: ci4.geumsol.kr/board

🔧 ci4 기본 설정
App.php
$baseUrl="http://ci4.geumsol.kr";
$indexPage="";

ci4는 이렇게 동작한다.
1. routes.php 파일에 경로를 정의 /board /board/create /board/update /board/delete /board/detail

1-1. GET, POST 또는 필터 적용 가능함

암호는 해시값으로 넣어야함
'password'=>password_hash($password, PASSWORD_DEFAULT)
Home.php
🔗 네이버 로그인 기능 사용하기(소셜 로그인)

네이버 개발자 센터 네이버 로그인을 사용하면 복잡하고 번거로운 회원 가입 절차 대신 빠르고 안전한 네이버 로그인으로 간편하게 서비스를 이용할 수 있습니다.
여러가지 개인정보 입력과 본인인증에 대한 불편함, 쉽게 잊어버릴 수 있는 ID와 비밀번호에 대해 고민할 필요가 없습니다.

📋 Application

필수 : 회원이름, 연락처 이메일 주소, 성별, 휴대전화번호
PC 웹 http://ci4.geumsol.kr http://ci4.geumsol.kr/naver/callback Client Secret: 79mEap9AQG

🗂️ Controllers/NaverAuth.php 추가
📌 Routes.php 수정
$routes->get('/naver/login', 'NaverAuth::login');
$routes->get('/naver/callback', 'NaverAuth::callback');

http://ci4.geumsol/naver/login 접속
http://ci4.geumsol/naver/login
동의하면 ci4.geumsol.kr 이동함

🛡️ CSRF 필터

로그인 하지 않은 상태에서 로컬에서 삭제 가능하므로 CSRF 필터 활성화 해줌

📌 Routes.php
$routes->get('/', 'Home::index', ['filter' => 'auth']);
$routes->get('/delete/(:num)', 'Home::delete/$1', ['filter' => 'auth']);
🛠️ app/Filters/AuthFilter.php 추가
⚙️ app/Config/Filter.php 추가
'auth' => \App\Filters\AuthFilter::class,

http://ci4.geumsol.kr/delete/50 -> login으로 넘어감
=> 로그인 해야 삭제되지 않도록 막아주기

📋 admin 페이지에 회원 목록 출력

admin.php

🚫 admin 페이지 직접 접근 차단

=> 허용된 IP만 접속할 수 있도록 조치

WhiteList.php

no_access.php