sql >> データベース >  >> RDS >> Mysql

PHPを使用して非アクティブなユーザーをログアウトします

    -4200はCookieを破棄するためのものです。クッキーは、過去に時間を設定することで破棄されます。したがって、4200秒後方に設定すると、1秒後方に設定するのと同じくらい効果的です。

    ユーザーをログアウトするには、複数の方法があります。最後のアクティブな時刻(ユーザーがページにアクセスするたびに時刻を設定する)を使用して、独自のCookieを設定できます。各スクリプトの先頭に、このCookieを取得し、最後のアクティブ時間を含む必要がある値をチェックする関数を含めます。この時間が許可された非アクティブ時間よりも古い場合は、このCookieを破棄し、セッションも破棄します。そうでない場合は、値を現在の時刻に更新します。

    もちろん、セッション自体の中に最後のアクティブな時間を保存することもできます。これは、Cookieの転送と管理のオーバーヘッドを取り除くはるかに効率的な方法です。

    編集

    以下は、最後のアクティブ時間を確認してユーザーをログアウトするための最小限のコードです。

    function login(){
        //check login username/pass etc...
        $_SESSION['last_active_time'] = time();
    }
    
    function auth(){
       if($_SESSION['last_active_time'] < (time() - 1800)){ //1800 is 30 minutes (time in seconds)
            logout(); //destroy the session in the logout function
        }
        else{
            $_SESSION['last_active_time'] = time();
        }
       //do some auth related things
    }
    

    これがこの背後にある基本的なロジックです。もちろん、セキュリティやチェックなどとともに、必要な他のものを実装する必要があります。



    1. jOOQ EXTRACT(EPOCH FROM [field])の回避策?

    2. T-SQLを使用してリンクサーバー上にデータベースを作成する2つの方法

    3. MySQLテーブルはクラッシュとしてマークされ、最後の(自動?)修復に失敗しました

    4. クエリでMYSQLの日付に日を追加するにはどうすればよいですか?