登录功能很简单吗?(那些说这也很简单,那也很简单的人,一般都是头脑比较简单之人)

非技术性文章,仁者见仁智者见智!莫要喷,莫要酸,谢谢!

职场就像个林子,林子大了,什么鸟都有?

我时常听一些同行或者网友说,这功能很简单,这很简单啊,那很简单,我一般听到这种话都默默不语,但心里表示嗤之以鼻,如果每一件事情都像他们所说的那么简单的话,那我觉得他可以去当总统了。

我们举例来说明,任何事情想把它做的很好,都要下一番功夫!

以登录功能为例吧!

登录功能真的很简单吗?

好多人说,登录不就是去数据库里面查询一下用户名和密码,然后和用户UI界面上输入的用户名和密码,做一下对比吗?对比相同的话,就表示允许登录,对比不相同的话,就表示不允许登录,我不得不承认,这种思路确实没错,但是头脑想的比较简单,想事情不够周到细致!

登录需要考虑哪些,需要考虑到的东西多了去了?

1.登录是否需要验证码

验证码又可以分很多种,纯字母的,纯数字的,数字和字母组合的,问答验证码(5+8=?),然后叫你输入答案,还有一些纯汉字的验证码,还有向右滑动的验证码,还有点击图片,点击汉字的验证码,大家看看12306的验证码功能,要知道12306网站的验证码功能可是改版了好多次呢!

说起验证码这东西,我有一点切肤之痛,验证码里面的字母i和数字1,有时候傻傻分不清楚,字母o和数字0,也是傻傻分不清楚,所以啊,程序员在写生成验证码的时候,明明可以剔除字母i和数字1这些容易混淆的字符,可是有很多程序员就是不注意这些小细节。

我觉得,验证码这个功能可以放到后台去,最好是我们可以在后台灵活的配置验证码的生成规则。

我个人认为,如果是只面向内网用户的话,登录时,最好去掉验证码的功能,如果是需要面向外网用户的话,登录时,最好加上验证码的功能

2.也可以使用手机短信验证码的方式来登录

3.也可以使用手机扫描二维码的方式来登录

4.登录是否要区分内网用户和外网用户

5.登录是否要限制IP段

6.登录时,是否要记录登录失败的次数,从而限制用户今天不能登录了,或者锁住用户,锁几天,几天后自动解锁,经常登录失败是否要列入黑名单等等等之类的。

7.登录界面是否要加一个小眼睛图标,让用户明眼看看密码有没有输错,这样显得体验更加人性化

8.登录名可以是用户名,也可以是邮箱,也可以是手机号,也可以是身份证号等等

9.登录时记录登录IP和登录的地理位置(国省市县),记录登录的日期和时间、记录登录的客户端类型(pc,手机,ipad)等等信息

10.在登录时,查询数据库用户表的用户名和密码时,如果用户表数据量太大,查询速度慢怎么办?可以考虑将用户表按照性别男女,分成男用户表和女用户表,提升查询速度,当然啦,你也可以按照其他方式分表。

11.登录界面上,勾选记住密码,勾选30天内免登录(会使用到cookie)

在cookie中,保存三个东西——用户名,登录序列,登录token

用户名:明文存放。
登录序列:一个被MD5散列过的随机数,仅当强制用户输入口令时更新(如:用户修改了口令)。
登录token:一个被MD5散列过的随机数,仅一个登录session内有效,新的登录session会更新它。

登录token是单实例登录。意思就是一个用户只能有一个登录实例。

登录序列是用来做盗用行为检测的。如果用户的cookie被盗后,盗用者使用这个cookie访问网站时,我们的系统是以为是合法用户,然后更新“登录token”,而真正的用户回来访问时,系统发现只有“用户名”和“登录序列”相同,但是“登录token” 不对,这样的话,系统就知道,这个用户可能出现了被盗用的情况,于是,系统可以清除并更改登录序列登录token,这样就可以令所有的cookie失效,并要求用户输入口令。并给警告用户系统安全。

权衡Cookie的过期时间。如果是永不过期,会有很不错的用户体验,但是这也会让用户很快就忘了登录密码。如果设置上过期期限,比如2周,一个月,那么可能会好一点,但是2周和一个月后,用户依然会忘了密码。尤其是用户在一些公共电脑上,如果保存了永久cookie的话,等于泄露了帐号。所以,对于cookie的过期时间我们还需要权衡。

总之登录这个功能如果想做的很完善的话,需要考虑的东西还有很多,以上只是列举了一些,可能还有其他的需要考虑,欢迎大家补充,以上只是自己的一些拙见,不吝赐教!

希望大家以后少说这很简单,那很简单之类的话了!

希望大家少说话,多做事,多动手写代码,只有自己真正的去做了这件事情,才知道原来看似这么简单的事情想要把它做好其实并不容易!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值