


Bagaimana untuk log masuk hanya satu pengguna dalam php
Cara untuk log masuk hanya satu pengguna dalam PHP: 1. Mulakan soket di hujung hadapan uni-app 2. Terima mesej jenis "force exit" dalam masa nyata 3. Gunakan bahagian belakang PHP untuk terima parameter "Unik peranti" "Pengenalan" 4. Hantar mesej mengikut id pelanggan dalam cache.
Persekitaran pengendalian tutorial ini: sistem Windows 10, PHP versi 8.1, komputer Dell G3.
Bagaimana untuk log masuk hanya satu pengguna dalam php?
uni-app menggabungkan PHP untuk mencapai log masuk pengguna tunggal
Log masuk pengguna tunggal, iaitu, dalam aplikasi, pengguna yang sama hanya boleh log masuk sekali dalam talian Jika pengguna log masuk, dia akan ditolak ke luar talian serta-merta pada peranti lain Selepas pengesahan, kosongkan pemuatan log masuk pada peranti dan kembali ke antara muka log masuk.
uni-app pada masa ini boleh membungkus Android, IOS, applet WeChat, applet Toutiao Alipay dan H5 dengan menggunakan rangka kerja vue.js dan hanya perlu menulis satu set kod Ia mudah untuk nyahpepijat dan awan pembungkusan dengan menggunakan alat HBuilder , Mengenai sijil Apple, kami mengesyorkan CW.PUB, https://cw.pub/index/document/index. Gunakan HBuilder untuk mencipta pakej jailbreak dan tandatangani pada tapak web tersebut untuk memasangnya pada telefon Apple biasa Walau bagaimanapun, terdapat kaedah lain di Internet yang tidak disenaraikan di sini.
Secara amnya, APP akan menggunakan platform tolak mesej pihak ketiga untuk log masuk pengguna tunggal, walaupun uni-app juga boleh menyambung ke platform tolak seperti Umeng dan Jiguang. Tetapi masih disebabkan oleh masa, semakan platform dok dan proses lain tidak membenarkan masa. Saya menggunakan gatewayworkman dan websocket untuk melakukan sembang segera sebelum ini, jadi log masuk pengguna tunggal juga dilaksanakan menggunakan websocket.
Contoh log masuk pengguna tunggal soket Uni-apl
1 Bahagian hadapan uni-apl menghantar pengecam unik peranti semasa apabila memulakan soket, dan kemudian menerima "keluar paksa" dalam masa nyata " jenis mesej hanyalah contoh mudah.
//初始化 socket.on('init', () => { //连接初始化 socket.send({ type: 'login', token: uni.getStorageSync('access_token'), device_no: plus.device.uuid,//手机设备唯一编号 }); }).on('quit_push',(res)=> { if(res) { uni.showModal({ title: '退出通知', content: '你的账号在其他设备上登录!', showCancel: true, cancelText: '取消', confirmText: '确定', success: res => { if(res.confirm) { uni.clearStorageSync() store.commit('chat/clear') uni.reLaunch({ url:"../../pages/login/index" }) }else if(res.cancel) { uni.clearStorageSync() store.commit('chat/clear') uni.reLaunch({ url:"../../pages/login/index" }) } } }); } });
2 Bahagian belakang menerima parameter "pengecam unik peranti" dan mula-mula menyemak sama ada cache wujud Tiada id pelanggan yang merekodkan pengecam dan soket peranti.
3. Antara muka log masuk menerima pengenalan peranti dan rekod pengenalan diambil daripada cache atau pustaka untuk menentukan sama ada ia konsisten dengan pengenalan peranti yang diterima sekarang , mesej dihantar berdasarkan klien dalam cache.
$is_online = Db::name('UserLoginClient')->where('user_id',$user['id'])->order('id desc')->find(); if(isset($device_no) && $device_no && $is_online['device_no'] != $device_no && !empty($is_online['device_no'])) { Tools::sendToClient($is_online['client_id'],json_encode([ 'type' => 'quit_push', 'data' => 'ip', 'message' => '强制下线' ])); }
4. Bahagian kaedah sendToClient kelas alatan
public static function sendToClient($client_id, $message) { Gateway::sendToClient($client_id, $message); }
Tekan contoh log masuk pengguna tunggal
1. Mula-mula, kami berhubung dengan Umeng, termasuk menambahkan SDK pada bahagian hadapan dan belakang serta menggunakan kaedah mereka.
2. Message push mempunyai nilai unik "token", di sini dirujuk sebagai "pushtoken", yang dijana oleh pelanggan dan boleh mengenal pasti peranti unik.
3. Apabila bahagian belakang log masuk, ia menerima pushtoken dan juga menentukan sama ada pushtoken wujud Jika ia tidak wujud, ia akan disimpan dengan ID pengguna sebagai kunci.
4. Apabila ia wujud, ia akan dinilai sama ada ia konsisten dengan cache Jika ia konsisten, masa cache akan dilanjutkan ditolak ke pushtoken lama (dalam cache) dan pushtoken baharu akan dicache.
if (self::$headToken && Cache::has(self::$prefix . self::$userId)) { if (self::$headToken == Cache::get(self::$prefix . self::$userId)) { Cache::set(self::$prefix . self::$userId, self::$headToken, self::$timeOut); } else { // 换了手机,客户端重新发送pushtoken到服务端,服务端与缓存中的pushtoken比较,不同则给原来pushtoken手机推送一条并重新缓存新的token // modify by wensen on 20180816 // $addr = getCity(); $addr = getMobCity(); $ip = request()->ip(); if ($addr) { $addr['province'] = empty($addr['province']) ? '' : $addr['province']; $addr['city'] = empty($addr['city']) ? '' : $addr['city']; // $address = "\t" . $addr['country'] . "-" . $addr['region'] . "-" . $addr['city'] . " (IP:" . $ip . ")\t"; $address = "\t" . $addr['country'] . "-" . $addr['province'] . "-" . $addr['city'] . " (IP:" . $ip . ")\t"; } else { $address = "IP:" . $ip . ""; } $OldToken = Cache::get(self::$prefix . self::$userId); if (strlen($OldToken) == 64) { $content = array( 'title' => 'APP紧急通知', 'body' => '您的账号于:' . date('Y-m-d H:i:s') . '在' . $address . '处登录,若不为您本人登录,请您立即修改密码!', 'pull_service' => 'login' ); \umeng\Push::send($OldToken, 'unicast', $content, 'message', true); } elseif (strlen($OldToken) == 44) { $content = array( 'pull_service' => 'login', 'msg' => '您的账号于:' . date('Y-m-d H:i:s') . '在' . $address . '处登录,若不为您本人登录,请您立即修改密码!' ); \umeng\Push::send($OldToken, 'unicast', $content, 'message', true); } Cache::set(self::$prefix . self::$userId, self::$headToken, self::$timeOut); } } else { Cache::set(self::$prefix . self::$userId, self::$headToken, self::$timeOut); }
5 Klien APP menerima tolakan dan melakukan gesaan pop timbul dan pemprosesan keluar.
6 Di atas adalah kaedah tolak yang dirangkumkan mengikut SDK Umeng, termasuk aktiviti aplikasi unicast, penyiaran, melompat, sambungan halaman web melompat, dll.
Pembelajaran yang disyorkan: "Tutorial Video PHP"
Atas ialah kandungan terperinci Bagaimana untuk log masuk hanya satu pengguna dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Untuk bekerja dengan tarikh dan masa dalam cakephp4, kami akan menggunakan kelas FrozenTime yang tersedia.

CakePHP ialah rangka kerja sumber terbuka untuk PHP. Ia bertujuan untuk menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP adalah berdasarkan seni bina seperti MVC yang berkuasa dan mudah difahami. Model, Pandangan dan Pengawal gu

Untuk mengusahakan muat naik fail, kami akan menggunakan pembantu borang. Di sini, adalah contoh untuk muat naik fail.

Pengesah boleh dibuat dengan menambah dua baris berikut dalam pengawal.

Log masuk CakePHP adalah tugas yang sangat mudah. Anda hanya perlu menggunakan satu fungsi. Anda boleh log ralat, pengecualian, aktiviti pengguna, tindakan yang diambil oleh pengguna, untuk sebarang proses latar belakang seperti cronjob. Mengelog data dalam CakePHP adalah mudah. Fungsi log() disediakan

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

CakePHP ialah rangka kerja MVC sumber terbuka. Ia menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP mempunyai beberapa perpustakaan untuk mengurangkan beban tugas yang paling biasa.
