thinkphp가 각 페이지에서 세션 확인을 설정하는 방법

PHPz
풀어 주다: 2023-04-11 15:13:04
원래의
943명이 탐색했습니다.

인터넷의 급속한 발전과 함께 개발자들은 끊임없이 새로운 기술과 프레임워크를 탐구하고 있습니다. 가장 인기 있는 프레임워크 중 하나는 thinkphp입니다. thinkphp는 개발 과정에서 효율성을 크게 향상시킬 수 있고 확장성과 개방성이 뛰어난 효율적이고 빠른 고성능 PHP 프레임워크입니다. thinkphp 프레임워크에서 세션은 필수적인 부분이며, 특히 사용자 로그인 확인 및 신원 인증에 있어서 더욱 그렇다. 이 글에서는 각 페이지에서 세션 확인을 설정하는 방법을 소개합니다.

1. thinkphp 프레임워크에서 세션 사용

세션은 웹사이트에 사용자의 임시 정보를 저장하는 데 사용되는 기술입니다. thinkphp 프레임워크에서는 세션을 사용하는 것이 매우 간단합니다.

session_start(); //开启session
$_SESSION['key'] = 'value'; //设置session变量
로그인 후 복사

물론, thinkphp 프레임워크에서 제공하는 세션 클래스를 사용하여 작동할 수도 있습니다.

use think\facade\Session;
Session::set('key', 'value');
로그인 후 복사

2. 세션 존재 여부 자동 확인

시스템 보안을 위해 사용자의 로그인 여부를 확인해야 합니다. thinkphp 프레임워크에서는 미들웨어 메커니즘을 사용하여 각 페이지에서 세션 확인을 수행하여 자동 확인을 달성할 수 있습니다. 구체적인 코드는 다음과 같습니다.

namespace app\http\middleware;

use Closure;
use think\facade\Session;
use think\exception\HttpException;

class CheckLogin
{
    public function handle($request, Closure $next)
    {
        if (!Session::has('user_id')) {
            throw new HttpException(401, '请先登录');
        }

        return $next($request);
    }
}
로그인 후 복사

위 코드에서 네임스페이스는 먼저 사용자 정의 애플리케이션 미들웨어가 사용되는 위치, 즉 "apphttpmiddleware" 디렉터리를 정의하는 데 사용됩니다. handler() 메소드에서는 먼저 user_id 변수가 세션에 존재하는지 확인하여 사용자가 로그인되어 있는지 확인합니다. 로그인이 없으면 사용자에게 로그인하라는 메시지를 표시하기 위해 HTTP 예외가 발생합니다.

3. Controller에서 미들웨어 사용

thinkphp 프레임워크에서는 Controller의 생성자에서 미들웨어를 호출하여 사용자가 정상적으로 로그인했는지 확인하는 방식으로 해당 검사를 추가할 수 있습니다. 구체적인 코드는 다음과 같습니다.

namespace app\controller;

use app\http\middleware\CheckLogin;
use think\Controller;

class Index extends Controller
{
    protected $middleware = [
        CheckLogin::class,
    ];

    //index方法省略
}
로그인 후 복사

위 코드에서는 네임스페이스를 정의에 사용했습니다. Controller 클래스는 Think 프레임워크의 상위 클래스를 상속하고 미들웨어인 CheckLogin을 정의하는데, 이는 CheckLogin 미들웨어가 Controller에 도입되었음을 의미합니다. , 따라서 사용자 로그인 ID 확인을 구현합니다.

이 글에서는 사용자가 로그인했는지 확인하기 위해 thinkphp 프레임워크에서 세션을 사용하는 방법과 미들웨어 메커니즘을 사용하여 각 페이지를 자동으로 확인하는 방법을 주로 소개합니다. 세션 적용을 능숙하게 익히고 싶다면 여전히 오랜 연습과 학습 과정이 필요합니다. 이 글이 독자들의 연구와 실천에 도움과 참고가 되기를 바랍니다.

위 내용은 thinkphp가 각 페이지에서 세션 확인을 설정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿