2021-3-11 Java中级项目实战鸡飞狗跳

白屏

好家伙昨晚刚弄完登陆注册板块今天写完拦截器部分一运行就白屏了,照着源代码一部分一部分看,中间改了些pom文件,但其实似乎没必要。最后过了一会儿再运行就万事Ok了,也不知道咋回事。中间有以为是数据库连接过多引起的白屏,但重启Mysql后也并没有解决。所以…迷

ticket失效

拦截器写完后想试试登录后显示用户ID效果,但无论怎么试都无法成功,甚至是用了官方源码(?现在想想实际上应该是可以跑通的,迷)后来跟着视频中间一部分debug展示的步骤,一步一步查看,发现中间prehandle的部分在通过cookie中存储的ticket值去数据库查找元组,并通过user_id将关联的user表元组用户查找出来最后加入threadlocaluser中。这样最后到postHandle才能提取出当前用户最后返回给前端。
随着一步一步debug,我发现ticket提取用户的时候出错了,与数据库中的记录对不上,本来应该是userid结果提取成了id,再去看看LoginTicketDAO类查看结果发现select_fields写错了

id后面少写了一个逗号我哭

更改登录验证逻辑

源代码中关于ticket验证有些奇怪的地方,默认是每次登录都默认增加一条ticket记录,实际上从login_ticket表中查询是否有有效的ticket较好

Service.login()LoginTicketDAO
因为login_ticket表关于同一用户可能有多条记录,所以需要选出最新的一条(通过最大的id号来选取),至于查询某列最大值这个写法,似乎又有更多选择了(留个坑)

用户数据安全性

  1. HTTPS注册页
  2. 公钥加密私钥解密
  3. 用户密码salt
  4. token有效期
  5. 单一平台的单点登录,登录IP异常检验
  6. 用户状态的权限判断
  7. 添加验证码机制,防止爆破和批量注册
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值