会員サイト機能

一定期間毎に現在の端末からのログインセッション確認する方法

はじめに

こちらは中級者以上向けの方法です。実装することでサイトが動作しなくなることもありますので、ご利用の際には検証環境を用意して十分に気をつけて作業してください。

重複ログイン禁止機能の限界

TAKETINのWordpressプラグインでは、ログイン情報の使いまわしといった問題に対する解決策が用意されています。

重複ログイン禁止機能を使うことで画面読み込み時の重複チェックを行えるようになっており、ログイン情報の使いまわしを抑制することができるようになっています。

重複ログインを禁止する方法

はじめに Eラーニング用のサイトの場合、ログイン情報の使いまわしといった問題が出てきます。 ログインIDとパスワードを、他の人に教えてし...
2020.04.10

しかしながら、画面を開いている状態であれば別のログインが行われたとしても、その画面のコンテンツ(動画など)は視聴し続けることができてしまいます。

そこで以下のプログラムを実装することで、一定期間毎に現在の端末からのログインセッションが重複ログインでないかを確認することができます。

1.function.phpに以下のコードを記述

function add_ajaxurl() {
?>
    <script>
        var ajaxurl = '<?php echo admin_url( 'admin-ajax.php'); ?>';
    </script>
<?php
}
add_action( 'wp_head', 'add_ajaxurl', 1 );

2.テンプレートファイルに以下のコードを記述

テーマのテンプレートファイル等に以下のコードを記載すると、60秒毎に重複ログインがされていないかを確認するための通信が行われます。
重複ログインが確認されたときには、重複ログイン時のページへ転送されるようになっています。

https://taketin.com/wp-content/uploads/2018/02/taketin_base.png
たけちん

javascriptを変更することで、お好きに挙動をコントロールできます。

<script type="text/javascript">
jQuery(document).ready(function($) {
    var int = setInterval(function duplicateCheck(){
	  var login_token = '<?php echo $_COOKIE[TMP_MEM_COOKIE_KEY]["login_token"];?>';
		var unique_code = '<?php echo $_COOKIE[TMP_MEM_COOKIE_KEY]["unique_code"];?>';
		var redirect_url = '<?php echo esc_url( home_url( '/' ) ); ?>duplicate-not-allow/';
		$.ajax(
			ajaxurl,
			{
				type: 'post',
				data: {
					'action' : 'duplicate_login_check',
					'login_token' : login_token ? login_token : null,
					'unique_code': unique_code ? unique_code : null
				},
				dataType: 'json'
			}
		)
		.done(function(data) {
			if (!data.result) {
				//duplicated
				location.href = redirect_url;
			} else {
				console.log(data.mess);    
			}
		})
		.fail(function(errors) {
			//console.log(errors);
		});  
    }, 600000);
});
</script>
https://taketin.com/wp-content/uploads/2018/02/haku_base.png
はくにゃん

ちょっと難しいね

関連記事はこちら

【開発関連の制作会社様】TAKETINシステムとお持ちのシステムを連携したい場合

TAKETINシステムとお持ちのシステムを連携したいというご要望があります。 その場合はAPIやWebhook機能を使って、御社でご用...
2021.09.24

[会員サイトWordPress]ウィジェットやテーマ内で会員のみにコンテンツを表示させる方法

はじめに TAKETIN MP 閲覧を制御できるWordpressのページは以下です。 これらはプラグインを入れると会員向けコンテンツと...
2018.12.25
TOP