현재 위치: > 최신 기사 목록> YII 프레임 워크 미들웨어 : 인증 및 사용자 인증 구현

YII 프레임 워크 미들웨어 : 인증 및 사용자 인증 구현

M66 2025-06-06

소개

미들웨어는 현대 웹 개발의 중요한 부분이며 종종 요청과 응답 사이에 처리 로직을 삽입하여 응용 프로그램의 보안 및 기능을 향상시키는 데 사용됩니다. YII 프레임 워크에서 미들웨어를 "필터"라고하며 인증 및 사용자 인증 기능을 효과적으로 구현할 수 있습니다. 이 기사는 YII 프레임 워크의 필터를 통해이 두 가지 주요 기능을 구현하는 방법을 체계적으로 소개합니다.

1. 사용자 ID 인증을 구현합니다

사용자 인증은 시스템의 보안을 보장하고 무단 액세스를 방지 할 수있는 첫 번째 방어선입니다. YII에서는 yii \ base \ actionFilter 에서 상속 된 클래스를 미들웨어로 만들어서 신분되지 않은 사용자를 가로 채 릴 수 있습니다.

다음은 인증 필터에 대한 샘플 코드입니다.

 
namespace app\filters;

use Yii;
use yii\base\ActionFilter;

class AuthFilter extends ActionFilter
{
    public function beforeAction($action)
    {
        $user = Yii::$app->user;

        if ($user->isGuest) {
            $user->loginRequired();
            return false;
        }

        return parent::beforeAction($action);
    }
}

이 필터는 사용자가 보호 된 작업에 액세스하기 전에 확인하고 로그인이 로그인되지 않은 경우 로그인 페이지로 리디렉션합니다.

다음으로 필터를 컨트롤러에 바인딩해야합니다.

 
namespace app\controllers;

use yii\web\Controller;
use app\filters\AuthFilter;

class SiteController extends Controller
{
    public function behaviors()
    {
        return [
            'auth' => [
                'class' => AuthFilter::class,
                'only' => ['admin'],
            ],
        ];
    }

    public function actionAdmin()
    {
        return 'Admin Area';
    }
}

위의 예에서 Authfilter는 관리 조치에만 적용되므로 인증 된 사용자만이 부분에 액세스 할 수 있습니다.

2. 사용자 인증 제어 구현

사용자 인증은 로그인 사용자가 리소스에 액세스 할 수있는 권한이 있는지 또는 특정 작업을 수행 할 수 있는지 여부를 결정하는 데 사용됩니다. YII 프레임 워크에서 필터를 사용하여 인증 로직을 완료 할 수도 있습니다.

다음은 사용자 승인을 구현하는 예제 필터입니다.

 
namespace app\filters;

use Yii;
use yii\base\ActionFilter;
use yii\web\ForbiddenHttpException;

class AccessControlFilter extends ActionFilter
{
    public function beforeAction($action)
    {
        $user = Yii::$app->user;

        if (!$user->can($action->id)) {
            throw new ForbiddenHttpException('You are not allowed to perform this action.');
        }

        return parent::beforeAction($action);
    }
}

이 필터는 $ user-> can () 메소드를 사용하여 사용자가 현재 작업을 수행 할 권한이 있는지 확인합니다. 허가가 없으면 403 금지 예외가 발생합니다.

인증 필터는 인증과 유사하게 적용됩니다.

 
namespace app\controllers;

use yii\web\Controller;
use app\filters\AccessControlFilter;

class SiteController extends Controller
{
    public function behaviors()
    {
        return [
            'access' => [
                'class' => AccessControlFilter::class,
                'only' => ['admin'],
            ],
        ];
    }

    public function actionAdmin()
    {
        return 'Admin Area';
    }
}

이러한 방식으로, 우리는 사용자의 특정 컨트롤러 작업에 대한 액세스를 유연하게 제어 할 수 있습니다.

요약

이 기사에서는 필터 메커니즘 (예 : 미들웨어)을 사용하여 YII 프레임 워크에서 사용자 인증 및 권한 제어를 구현하는 방법에 대해 설명합니다. 이 방법에는 명확한 구조가있을뿐만 아니라 전체 애플리케이션의 보안을 향상시킵니다. 개발자는 필터 클래스를 생성하고 컨트롤러에서 구성하여 제어 가능한 액세스 관리 로직을 구현할 수 있으며, 이는 안전한 웹 애플리케이션을 구축 할 때의 주요 관행 중 하나입니다.