记录一次生产事故引发的登录流程梳理

登录流程梳理:

1、用户录入登录信息(用户名和密码,或手机号和短信验证码)

2、后台获取到 登录信息,验证码验证,不匹配返回,匹配则继续

3、根据用户名(或手机号)查询数据库是否存在对应用户,没有返回,有则继续

4、验证密码(或验证码),不匹配返回,匹配则继续

5、相关权限校验,无权限返回,有则继续

6、将用户信息放入缓存,失败返回,成功则继续

7、记录登录日志表,失败需记录,无论成功或失败都要继续

8、登录验证成功返回

 第7步是后来追加的,本来计划安排我去开发,因为前面的功能也是我做的。但由于我目前还有其他紧急开发任务,就由另一个同事去开发了。结果由于他忽略了 记录登录日志表失败(要存入的值超出字段设定长度值)的情况,导致用户登录不成功。

想想也是后怕,如果是我去开发,可能也会忽略这个问题,因为我们会处理 AVA编译器强制要求的非运行时异常,但是那些运行时异常(RuntimeException)如果没有捕获处理这个异常(即没有catch),系统会把异常一直往上抛,直到最上层,导致程序无法继续正常运行。

所以,代码开发一定要先把流程梳理清楚,最好是有明确的需求文档,但很多时候因为需求太简单就没有说明文档,完全凭着经验去开发。

后记,用来做日志功能的数据库表,如果不是对长度有特殊要求的,最好选用可变长度的字段类型(oracle用varchar2、mysql用varchar),这样设置的长度长一些也没关系,如果用了可变长度的字段类型却把长度设置的很有限,就是个潜在的坑!(吐槽公司的登录日志表设计)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值