


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!

Artikel ini membandingkan model pangkalan data asid dan asas, memperincikan ciri -ciri mereka dan kes penggunaan yang sesuai. Asid mengutamakan integriti data dan konsistensi, sesuai untuk aplikasi kewangan dan e-dagang, sementara asas memberi tumpuan kepada ketersediaan dan

Artikel ini membincangkan mendapatkan muat naik fail PHP untuk mengelakkan kelemahan seperti suntikan kod. Ia memberi tumpuan kepada pengesahan jenis fail, penyimpanan selamat, dan pengendalian ralat untuk meningkatkan keselamatan aplikasi.

Artikel membincangkan amalan terbaik untuk pengesahan input PHP untuk meningkatkan keselamatan, memberi tumpuan kepada teknik seperti menggunakan fungsi terbina dalam, pendekatan putih, dan pengesahan sisi pelayan.

Artikel ini membincangkan strategi untuk melaksanakan kadar API yang mengehadkan PHP, termasuk algoritma seperti baldi token dan baldi bocor, dan menggunakan perpustakaan seperti simfoni/kadar-limiter. Ia juga meliputi pemantauan, had kadar penyesuaian secara dinamik, dan tangan

Artikel ini membincangkan manfaat menggunakan password_hash dan password_verify dalam php untuk mendapatkan kata laluan. Hujah utama ialah fungsi ini meningkatkan perlindungan kata laluan melalui penjanaan garam automatik, algoritma hashing yang kuat, dan secur

Artikel ini membincangkan kelemahan OWASP 10 dalam strategi PHP dan mitigasi. Isu -isu utama termasuk suntikan, pengesahan yang rosak, dan XSS, dengan alat yang disyorkan untuk memantau dan mendapatkan aplikasi PHP.

Artikel ini membincangkan strategi untuk mencegah serangan XSS di PHP, memberi tumpuan kepada sanitisasi input, pengekodan output, dan menggunakan perpustakaan dan kerangka kerja yang meningkatkan keselamatan.

Artikel ini membincangkan penggunaan antara muka dan kelas abstrak dalam PHP, memberi tumpuan kepada masa untuk menggunakan setiap. Antara muka menentukan kontrak tanpa pelaksanaan, sesuai untuk kelas yang tidak berkaitan dan warisan berganda. Kelas Abstrak Memberi Funct Biasa


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

MantisBT
Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

SublimeText3 Linux versi baharu
SublimeText3 Linux versi terkini

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Muat turun versi mac editor Atom
Editor sumber terbuka yang paling popular

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)