반응형
들어가기
코드이그나이터 필터는 인증 관련 처리를 할 때 유용하게 사용합니다.
1. 필터 인터페이스 생성
2. 필터 등록
3. 필터 사용
1. 필터 인터페이스 생성
App\Filters 폴더에 UserAuth.php 파일을 만듭니다.
세션 값에 ss_id가 없으면 Home으로 이동합니다.
<?php
namespace App\Filters;
use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;
use CodeIgniter\Filters\FilterInterface;
class UserAuth implements FilterInterface
{
public function before(RequestInterface $request, $arguments = null)
{
helper('uri');
if (!session()->get("ss_id")) {
return redirect()->to("/");
}
}
public function after(RequestInterface $request, ResponseInterface $response, $arguments = null)
{
//
}
}
2. 필터 등록
App\Filters.php 파일에서 'userauth' => \App\Filters\UserAuth::class 등록합니다.
<?php
namespace Config;
use CodeIgniter\Config\BaseConfig;
use CodeIgniter\Filters\CSRF;
use CodeIgniter\Filters\DebugToolbar;
use CodeIgniter\Filters\Honeypot;
use CodeIgniter\Filters\InvalidChars;
use CodeIgniter\Filters\SecureHeaders;
class Filters extends BaseConfig
{
/**
* Configures aliases for Filter classes to
* make reading things nicer and simpler.
*
* @var array
*/
public $aliases = [
'csrf' => CSRF::class,
'toolbar' => DebugToolbar::class,
'honeypot' => Honeypot::class,
'invalidchars' => InvalidChars::class,
'secureheaders' => SecureHeaders::class,
'userauth' => \App\Filters\UserAuth::class
];
/**
* List of filter aliases that are always
* applied before and after every request.
*
* @var array
*/
public $globals = [
'before' => [
// 'honeypot',
// 'csrf',
// 'invalidchars',
],
'after' => [
'toolbar',
// 'honeypot',
// 'secureheaders',
],
];
/**
* List of filter aliases that works on a
* particular HTTP method (GET, POST, etc.).
*
* Example:
* 'post' => ['csrf', 'throttle']
*
* @var array
*/
public $methods = [];
/**
* List of filter aliases that should run on any
* before or after URI patterns.
*
* Example:
* 'isLoggedIn' => ['before' => ['account/*', 'profiles/*']]
*
* @var array
*/
public $filters = [];
}
3. 필터 사용
App\Routes.php 파일에서 필터를 실행할 라우트를 등록합니다. 라우트 기능을 제대로 사용하려면
$routes->setAutoRoute(false); 로 설정해야 합니다.
$routes->get('/auth/ss_test', 'AuthTest::sess_test', ['filter' => 'userauth'] );
반응형
'소프트웨어 개발 > PHP' 카테고리의 다른 글
[코드이그나이터4] 관련자료 링크 정리 (0) | 2022.02.14 |
---|---|
[코드이그나이터4] 코드이그나이터4 설치 / 프로젝트 생성 (0) | 2022.02.14 |
[코드이그나이터4] 세션(session) 사용법 ci4 session (0) | 2022.02.14 |
[코드이그나이터4] jquery-ajax 업로드 설정, 컨트롤러 설정 (0) | 2022.02.13 |
[코드이그나이터4] 직전 URL 구하기 referer url, 접속 에이전트 구하기, 모바일 여부 체크, 에이전트 정보 구하기 (0) | 2022.02.13 |
댓글