16-登录功能功能架构设计二(密码登录)
xiangliheart
xiangliheart
发布于 2022-03-20 / 12 阅读 / 0 评论 / 0 点赞

16-登录功能功能架构设计二(密码登录)

多类型账号密码登录设计

账号密码登录是最常用的登录形式,可以分为以下3种。

(1)     用户名/账号/工号+密码登录:面向企业的互联网产品或内部管理系统的常用设计。

(2)     手机号+密码登录:面向个人的互联网产品的常用设计。

(3)     邮箱+密码登录:面向企业和个人的PC端产品的常用设计 。

密码怎样在传输过程中不被窃取、不被开发人员破解盗用?对于密码传输和存储的安全设计,可参见5.3.5小节。

密码登录具有多样性,为了方便用户的使用,很多系统在登录页面都可以选择录入账号、手机号、邮箱任意一种,系统会自动根据用户填写的信息进行登录判断,图4-3 所示为App用户登录原型。

图4-3 App用户登录原型

如果读者对原型图的相关内容不了解,则可以先阅读以下基础知识内容。

1.什么是原型图?

原型图的作用是将抽象的系统需求,以直观的、可操作的、可交互的方式展现出来。让所有人可以直接地看到最终的系统界面和功能。

2.现代的系统原型图与早期有何区别?早期的系统原型图多是采用一些线框、草图,甚至是Excel来表示的,直观性不强,并且不具备交互性。例如,点击一个按钮弹出提示框 ,这个交互过程就很难表达。现代的系统原型图可以做到与最终系统的效果几乎完全相同,各种动态效果、事件、控件也极其丰富。

3.企业中是如何使用系统原型图的?

企业中的工作流程是:产品原型(产品经理)→UI设计(UI团队)→系统开发(开发团队)→系统测试(测试团队)→系统发布

(运维团队)。

(1)     在系统正式开发之前,由产品经理根据需求进行分析,然后绘制系统原型图。经过多轮的研讨、评审才会确定最终可用于设计和开发的原型图。

(2)     UI团队根据产品原型图进行系统效果图的制作,具有完整的风格样式、字体、颜色、图标等,然后对图片进行各种尺寸标记和切图。

(3)     前端团队根据UI设计进行系统界面的开发,后端团队根据产品原型图进行后端接口开发。

(4)     开发完毕后,测试团队根据UI设计、产品原型图进行测试验收。

(5)     由运维团队或开发团队完成系统的发布上线。

在整个工作流程中,产品原型贯穿于整个系统研发周期,具有十分重要的作用。

4.企业中使用什么软件绘制原型图?

目前企业中普遍使用Axure RP绘制原型图。Axure RP由美国Axure

Software Solution公司开发,它能让操作者快速准确地创建基于Web的网站流程图、原型页面、交互体验设计、标注详细开发说明,并导出

HTML原型或Word等开发文档。对于App、小程序、Web系统的设计均可以采用此软件。同时,国内还有“蓝湖”“磨刀”等原型设计系统也比较优秀。

方案1:服务端匹配设计。

登录交互方式如图4-4所示,此种方案下客户端只向服务端提交用户名和密码两个字段。由服务端判断用户名和密码的正确性。

图4-4 登录交互方式(1)

数据库用户表采用横向设计,将账号、手机号、邮箱分别存储在同一个表的不同字段中,如表4-1所示。

表4-1 用户信息表的结构(横向设计)

服务端采用or语句进行匹配,SQL语句如下。

优点是无须明确知道用户采用何种方式登录,统一由后端系统匹配。

缺点是使用多个or语句会导致SQL的执行性能急剧下降,如果系统中存在大量的用户,则会导致查询极其缓慢;对于一些小型的内部系统可以采用,但是对于用户数量较大,并且存在高并发访问的系统,会导致数据库的承压过重,因此不推荐此种设计。

方案2:客户端匹配设计。

登录交互方式如图4-5所示,此种方案下客户端需要向服务端多提交一个登录方式字段。例如, loginType=1(代表账号)或2(代表手机号)或3(代表邮箱)。由客户端根据正则表达式匹配出用户录入的登录信息为账号、邮箱,还是手机号。由于账号具有不确定性,因此前端需要先进行手机号、邮箱格式的匹配,如果两种都无法匹配,则认为用户录入的是账号。

图4-5 登录交互方式(2)

当然,正则匹配的过程也可以在服务端完成,这样登录接口可以少传入一个登录类型字段,但是依然建议采用客户端匹配的方式,可以减轻服务端的处理压力。

这样,服务端就可以根据不同的登录方式,执行不同的SQL语句。

看似很小的改动,却可以带来性能成倍的增长,数据量越大,提升的效果越明显。对于任何涉及系统性能的设计,都要扩展到时间维度、数据量维度去思考。可能现在的系统只有几百个用户,但是随着时间和业务的增长,是否会出现几万、几十万、几百万个用户呢?

注意事项:对于以上两种设计方案,在账号、手机号、邮箱字段上一定要增加独立索引或复合索引来提高查询效率。

架构技巧:做设计时最忌讳的就是封闭思考,没有任何一个需求是孤立存在的,它一定和某些事物相关联。登录功能当然也符合这个原则,采用以上哪种登录方式往往与用户注册、找回密码、设置密

码、绑定手机、绑定邮箱这5个功能关联。如果不进行统筹考虑,就可能造成功能缺失和设计缺陷。


评论