thinkphp が各ページでセッション検証を設定する方法

PHPz
リリース: 2023-04-11 15:13:04
オリジナル
943 人が閲覧しました

インターネットの急速な発展に伴い、開発者は常に新しいテクノロジとフレームワークを模索しています。最も人気のあるフレームワークの 1 つは thinkphp です。 thinkphp は、開発プロセス中の効率を大幅に向上させることができ、優れたスケーラビリティとオープン性も備えた、効率的、高速、高性能の PHP フレームワークです。 thinkphp フレームワークでは、セッションは、特にユーザーのログイン検証と ID 認証において不可欠な部分です。この記事では、各ページでのセッション認証の設定方法をご紹介します。

1. thinkphp フレームワークでのセッションの使用

セッションは、ユーザーの一時情報を Web サイトに保存するために使用されるテクノロジーです。 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);
    }
}
ログイン後にコピー

上記のコードでは、最初に名前空間 namespace を使用して、カスタム アプリケーション ミドルウェアが使用される場所、つまり "app\http\middleware" ディレクトリを定義します。 。 handle() メソッドでは、まず user_id 変数がセッションに存在するかどうかを判断することで、ユーザーがログインしているかどうかを判断します。ログインがない場合は、HTTP 例外がスローされ、ユーザーにログインを求めます。

3. コントローラーでのミドルウェアの使用

thinkphp フレームワークでは、コントローラーのコンストラクターでミドルウェアを呼び出して、ユーザーが正常にログインしているかどうかを確認することで、対応するチェックを追加できます。具体的なコードは以下の通りです:

namespace app\controller;

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

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

    //index方法省略
}
ログイン後にコピー

上記コードでは名前空間を定義に使用しており、Controllerクラスはthinkフレームワークの親クラスを継承してミドルウェアCheckLoginを定義しています。コントローラー、ユーザーのログイン ID を確認するミドルウェア。

この記事では主に、thinkphp フレームワークでセッションを使用してユーザーがログインしているかどうかを確認する方法と、ミドルウェアのメカニズムを使用して各ページの自動検証を実現する方法を紹介します。セッションの応用を上手にマスターしたい場合は、やはり長い練習と学習のプロセスが必要です。この記事が読者の学習や実践に役立つことを願っています。

以上がthinkphp が各ページでセッション検証を設定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート