javascript - 类似值乎和分答之类的产品,在架构上是怎么区分普通用户和回答者的身份的?
一个WebApp,同时拥有两类用户,一类是提问的,一类是回答的,那如何才能更好地维护这两种身份及各自的状态?
方案一:同一个人需要注册两遍,一个账号是用户一个账号是回答者,切换身份需要先登出然后选择身份重新登录,这样似乎比较清晰
方案二:所有用户在初始状态下都是普通用户,而要晋升成为回答者的话,需要提交某种申请,通过后,在原有用户信息下添加回答者的标记,相对应的展示内容也会有所变化,甚至可以说,可能回不到普通用户的状态了
方案三:两类用户注册流程完全相同,注册完成后统一跳转登录页面,在登录页面选择一种身份登录,其实这个就是在单个账号下区分身份,切换也需要重新登录
分答只是举个例子,这两类用户的用户行为其实有很大不同的,在一些内容展现上也会有所区分,举几个例子,一类是病人,一类是医生,一类是司机,那么另外一类是乘客,那么是采用哪一种方案更好管理和维护呢?
不知道我描述的是否清晰,希望有做过双端或者多身份账户登录的经验人士指点指点
回复内容:
一个WebApp,同时拥有两类用户,一类是提问的,一类是回答的,那如何才能更好地维护这两种身份及各自的状态?
方案一:同一个人需要注册两遍,一个账号是用户一个账号是回答者,切换身份需要先登出然后选择身份重新登录,这样似乎比较清晰
方案二:所有用户在初始状态下都是普通用户,而要晋升成为回答者的话,需要提交某种申请,通过后,在原有用户信息下添加回答者的标记,相对应的展示内容也会有所变化,甚至可以说,可能回不到普通用户的状态了
方案三:两类用户注册流程完全相同,注册完成后统一跳转登录页面,在登录页面选择一种身份登录,其实这个就是在单个账号下区分身份,切换也需要重新登录
分答只是举个例子,这两类用户的用户行为其实有很大不同的,在一些内容展现上也会有所区分,举几个例子,一类是病人,一类是医生,一类是司机,那么另外一类是乘客,那么是采用哪一种方案更好管理和维护呢?
不知道我描述的是否清晰,希望有做过双端或者多身份账户登录的经验人士指点指点
知乎是不需要双端的,每个人即可以是提问者也可以是回答者。你在别人的问题下就是回答者,同时你可以提新问题。注册和用户管理都是一套,根据页面逻辑确定角色。
滴滴打车是需要双端的,因为司机和乘客完全是两类人两类行为,所以注册和用户管理都是两套
boss直聘这种比较特殊,注册和用户管理是一套流程,和知乎相似。但角色切换是主动进行的,而不是应用根据逻辑赖自动帮你选。在用户登录后会让你选择是招聘者还是应聘者,然后进入对应的页面,以后所有的行为都是对应的角色。当然在使用中也可以主动切换角色
我采取的方案
数据库设计相关:
所有角色用户信息都存一个基础信息表,然后每个角色都有对应的信息外表
比如基础信息表存储用户名、昵称、密码、手机、邮箱,外表:普通会员信息表、商户信息表等
业务流程相关:
注册的时候可以选择先注册基础信息,然后再去引导让用户选择去完善外表信息
登录都是统一登录,方便扩展做统一用户单点登录服务
共享一个用户信息、安全设置等后台类似“我的淘宝”
具体的业务处理根据角色独立开发后台

Sebab -sebab kegagalan phpsession termasuk kesilapan konfigurasi, isu cookie, dan tamat tempoh sesi. 1. Ralat Konfigurasi: Semak dan tetapkan session.save_path yang betul. Masalah 2.Cookie: Pastikan kuki ditetapkan dengan betul. 3.Session Expires: Laraskan Nilai Sesi.GC_MAXLifetime untuk melanjutkan masa sesi.

Kaedah untuk masalah sesi debug dalam PHP termasuk: 1. Periksa sama ada sesi dimulakan dengan betul; 2. Sahkan penghantaran ID sesi; 3. Semak penyimpanan dan bacaan data sesi; 4. Semak konfigurasi pelayan. Dengan mengeluarkan ID dan data sesi, melihat kandungan fail sesi, dan lain-lain, anda boleh mendiagnosis dan menyelesaikan masalah yang berkaitan dengan sesi.

Pelbagai panggilan ke session_start () akan menghasilkan mesej amaran dan kemungkinan penggantian data. 1) PHP akan mengeluarkan amaran, menyebabkan sesi telah dimulakan. 2) Ia boleh menyebabkan penggantian data sesi yang tidak dijangka. 3) Gunakan session_status () untuk memeriksa status sesi untuk mengelakkan panggilan berulang.

Mengkonfigurasi kitaran hayat sesi dalam PHP boleh dicapai dengan menetapkan sesi.gc_maxlifetime dan session.cookie_lifetime. 1) session.gc_maxlifetime mengawal masa survival data sesi pelayan, 2) session.cookie_lifetime mengawal kitaran hayat kuki klien. Apabila ditetapkan ke 0, kuki tamat apabila penyemak imbas ditutup.

Kelebihan utama menggunakan sesi penyimpanan pangkalan data termasuk kegigihan, skalabilitas, dan keselamatan. 1. Kegigihan: Walaupun pelayan dimulakan semula, data sesi tidak dapat berubah. 2. Skalabiliti: Berkenaan dengan sistem yang diedarkan, memastikan data sesi disegerakkan di antara pelbagai pelayan. 3. Keselamatan: Pangkalan data menyediakan storan yang disulitkan untuk melindungi maklumat sensitif.

Melaksanakan pemprosesan sesi tersuai dalam PHP boleh dilakukan dengan melaksanakan antara muka sessionHandlerInterface. Langkah -langkah khusus termasuk: 1) mewujudkan kelas yang melaksanakan sessionHandlerInterface, seperti CustomSessionHandler; 2) kaedah penulisan semula dalam antara muka (seperti terbuka, rapat, membaca, menulis, memusnahkan, gc) untuk menentukan kitaran hayat dan kaedah penyimpanan data sesi; 3) Daftar pemproses sesi tersuai dalam skrip PHP dan mulakan sesi. Ini membolehkan data disimpan dalam media seperti MySQL dan REDIS untuk meningkatkan prestasi, keselamatan dan skalabiliti.

SesionID adalah mekanisme yang digunakan dalam aplikasi web untuk mengesan status sesi pengguna. 1. Ia adalah rentetan yang dijana secara rawak yang digunakan untuk mengekalkan maklumat identiti pengguna semasa pelbagai interaksi antara pengguna dan pelayan. 2. Pelayan menjana dan menghantarnya kepada klien melalui kuki atau parameter URL untuk membantu mengenal pasti dan mengaitkan permintaan ini dalam pelbagai permintaan pengguna. 3. Generasi biasanya menggunakan algoritma rawak untuk memastikan keunikan dan ketidakpastian. 4. Dalam pembangunan sebenar, pangkalan data dalam memori seperti REDIS boleh digunakan untuk menyimpan data sesi untuk meningkatkan prestasi dan keselamatan.

Menguruskan sesi dalam persekitaran tanpa kerakyatan seperti API boleh dicapai dengan menggunakan JWT atau cookies. 1. JWT sesuai untuk ketiadaan dan skalabilitas, tetapi ia adalah saiz yang besar ketika datang ke data besar. 2.Cookies lebih tradisional dan mudah dilaksanakan, tetapi mereka perlu dikonfigurasikan dengan berhati -hati untuk memastikan keselamatan.


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

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

SecLists
SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

mPDF
mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

SublimeText3 Linux versi baharu
SublimeText3 Linux versi terkini

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

DVWA
Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini
