Skip to content

PC問題解決!

  • ホーム

WordPressでアカウントごとに最大同時ログイン数を制限したい

Posted on 2019年8月23日2019年8月23日 Edited on 2019-08-23 by Taka

【問題】
WordPressでアカウントごとに最大同時ログイン数を制限したい

【解決方法】

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
function check_current_account_login_session( $user_login ){
 
$user = get_user_by( 'login', $user_login );
$userID = $user->data->ID;
$manager = '';
$manager = WP_Session_Tokens::get_instance( $userID );
$allSession = '';
$allSession = $manager->get_all();
 
      // 最大同時ログイン数
$iAcceptableMaxSession = 3;
 
      // ログインしようとしているアカウントの現在のログイン数
$iCurrentUserAllSession = count( $allSession );
 
if( $iAcceptableMaxSession < $iCurrentUserAllSession ){
 
add_filter( 'authenticate', 'set_authentication_error', 40, 1 );
}
}
 
add_action( 'wp_authenticate', 'check_current_account_login_session', 5, 1 );
 
function set_authentication_error(){
return new WP_Error( 'over_login_session_limit', '有効同時ログイン数が上限に達しています。' );
}

【備考】
一つのアカウントを複数人で使用されたくない場合、上記のコードをテーマフォルダ内のfunctions.phpにコピーすることで、アカウントの同時ログイン数を制限出来ます。

WordPressのログイン認証時に発動するwp_authenticateフックに、ログインしようとしているユーザーの現在のログインセッション数を取得する処理を追加しています。

もし、最大ログイン数をオーバーしていた場合、authenticateフックにWP_Errorオブジェクトを与えることで、ログインを失敗させています。

この投稿は役に立ちましたか? 役に立った 2人中2人がこの投稿は役に立ったと言っています。
Posted in Wordpress

投稿ナビゲーション

Previous PostOutlookで受信したメールが文字化けする
Next PostWordPressでログインを強制的に失敗させ、シェイク(ふるふる)させたい

カテゴリー

  • Linux
  • PHP
  • Thunderbird
  • Wordpress
  • その他
  • ウェブ
  • エクセル
  • ネットワーク

最近の投稿

  • Chromeのソースコードが文字化けする
  • WordPress(ワードプレス)でマルチサイト化を有効にする方法
  • ファイルサイズが肥大化したExcelを直す方法(Excel for Microsoft 365)
  • Thunderbird(サンダーバード)の軽量化
  • redirect permanentを使って.htaccessに1行でサイト丸ごとリダイレクト
  • MailPoetでカラムを追加すると、ページからはみ出し、コンテンツを追加すると古いテキストが一緒に表示される
  • ダウンロードしてしまった過去のメールから添付ファイルを分離・削除する方法(Thunderbird)
  • IMAP設定したThunderbirdが重たくなったのを軽くする方法(高速化)
  • WordPressでログインを強制的に失敗させ、シェイク(ふるふる)させたい
  • WordPressでアカウントごとに最大同時ログイン数を制限したい
  • Outlookで受信したメールが文字化けする
  • エクセルのフィルタで候補が出ない
  • Windows Update (0x8024401c)でエラーが出る
  • Windows 10 – Windows Updateでエラーが出る
  • 1行で書く.htaccess リダイレクト(転送:redirect)の設定方法 – 正規表現不要
  • ディスクの初期化でMBRとGPTの違いを知りたい
  • 新しいハードドライブ(HDD)をインストールしたが、Windowsがディスクを認識しない
  • WordPressで画像アップロード時『HTTP エラー。』が出る
  • Widows 共有フォルダの設定方法
  • Windows 共有フォルダにアクセスできない
Powered by Headline WordPress Theme