Bagaimana pekerja membezakan pengguna
Workerman sendiri tidak semestinya membezakan pengguna dalam cara aplikasi yang disokong pangkalan data mungkin, menggunakan pengenal unik seperti nama pengguna atau ID. Workerman adalah rangka kerja yang didorong oleh acara yang tidak disengajakan. Ia bertindak sebagai pelayan, menguruskan sambungan dan permintaan pengendalian, tetapi ia tidak secara intrinsik "mengetahui" apa -apa tentang identiti pelanggan yang disambungkan. Pengenalpastian dan pengurusan pengguna adalah tanggungjawab yang dikendalikan oleh logik aplikasi yang dibina di atas Workerman. Pendekatan biasa termasuk:
ID sesi: Aplikasi anda boleh menjana ID sesi yang unik untuk setiap klien yang menyambung dan menyimpan ID ini, bersama -sama dengan data pengguna yang berkaitan (jika disahkan), dalam pangkalan data, cache (seperti redis atau memcached), atau bahkan dalam proses pekerja sendiri (untuk permohonan yang lebih kecil). Setiap permintaan seterusnya dari pelanggan akan memasukkan ID sesi, yang membolehkan permohonan anda mengambil maklumat pengguna. Apabila pengesahan yang berjaya (mis., Menggunakan nama pengguna/kata laluan), aplikasi anda mengeluarkan tanda unik kepada pelanggan. Token ini kemudian dimasukkan ke dalam permintaan berikutnya, yang membolehkan permohonan anda mengesahkan identiti pengguna tanpa perlu sentiasa menghantar maklumat sensitif. JWT (JSON Web Tokens) adalah pilihan yang popular untuk ini. Walau bagaimanapun, ini tidak berfungsi merentasi pelbagai sambungan dari pengguna yang sama. Anda masih memerlukan sistem pengurusan sesi yang mantap jika anda ingin menjejaki pengguna merentasi sambungan atau sesi yang berbeza. Kod permohonan anda mentakrifkan bagaimana pengguna dibezakan dan diuruskan. - Bagaimana Workerman mengendalikan pelbagai pengguna serentak
workerman cemerlang dalam mengendalikan sejumlah besar pengguna serentak berkat arsitektur yang tidak segerak dan tidak menyentuh. Daripada membuat benang atau proses baru untuk setiap sambungan, Workerman menggunakan benang tunggal (atau sekumpulan kecil benang) untuk menguruskan banyak sambungan serentak menggunakan model yang didorong oleh peristiwa. Apabila pelanggan menghubungkan atau menghantar data, Workerman mendaftarkan acara tersebut dan terus memproses acara lain tanpa menyekat. Ini jauh lebih cekap daripada pelayan berasaskan benang tradisional atau berasaskan proses, terutamanya di bawah beban berat. -
Senibina yang didorong oleh peristiwa: Inti kecekapan Workerman. Peristiwa (seperti penubuhan sambungan, penerimaan data, pemotongan) dikendalikan secara asynchronously, yang membolehkannya bertindak balas kepada banyak pelanggan secara serentak. Lebih banyak pekerja boleh mengendalikan lebih banyak sambungan serentak, tetapi setiap pekerja menggunakan sumber. Untuk Pengesahan dan Kebenaran Pengguna?
Workerman sendiri tidak menyediakan mekanisme pengesahan terbina dalam atau kebenaran. Ciri -ciri ini mesti dilaksanakan dalam logik aplikasi anda. Workerman hanya menyediakan lapisan komunikasi. Anda perlu mengintegrasikan dengan sistem pengesahan luaran atau membina pendekatan anda sendiri. Kod permohonan anda akan mengesahkan kelayakan terhadap pangkalan data apabila percubaan masuk. Kekunci boleh memberikan kaedah pengesahan yang lebih mudah. - Kebenaran, sebaik sahaja pengguna disahkan, biasanya melibatkan periksa keizinan yang berkaitan dengan peranan atau akaun pengguna. Ini mungkin melibatkan pertanyaan pangkalan data atau memeriksa peranan terhadap senarai kawalan akses (ACL) yang ditakrifkan dalam aplikasi anda. Ia menyediakan lapisan komunikasi yang mendasari, tetapi tanggungjawab untuk pengurusan sesi terletak pada permohonan anda. Walau bagaimanapun, sifat tidak segeraknya menjadikannya sesuai untuk pengurusan sesi yang cekap apabila ditambah dengan teknik yang sesuai.
- Menggunakan mekanisme penyimpanan sesi: Ini boleh menjadi pangkalan data, cache (redis, memcached), atau juga kedai memori (untuk aplikasi yang lebih kecil). Pilih penyelesaian yang sesuai untuk beban yang anda jangkakan. Secara kerap mengeluarkan sesi yang telah tamat tempoh dari storan sesi anda untuk mengelakkannya daripada berkembang secara berlebihan. Ingat bahawa pengurusan sesi yang cekap adalah penting untuk keselamatan dan prestasi.
Atas ialah kandungan terperinci Bagaimana pekerja membezakan pengguna. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!