用户登录认证逻辑
基于验证码登录 1.检查验证码 数据库建一个存储验证码的表,img_code,它的字段包括: 1.1获取验证码 提供获取验证码接口,给前端使用。 有相关的验证码生成工具包和类,配置验证码规则,比如验证码长度、大写字母、小写字母、符号、数字组合,是否可重复等规则。 生成验证码和uuid,入库,并返回前端。 1.2保存验证码 当生成新的验证码和uuid时,存入数据库。并返回给前端。 1.3校验验证码 当有用户登录时,除了用户的登录信息外,需要回传验证码的uuid和code。 用回传的uuid查询验证码的表,是否能查询到记录,比较查询结果的code是否一致。 还要检查当前请求的时间和验证码生成时间是否超过了我们设置的时间,比如三分钟,超过了则验证码无效。 用户登录时还要求回传用户的 ip和设备id, 如果前端用户没有回传验证码uuid和code,则需查询用户最后一次登录的ip和设备id与本次登录是否相同,相同则不需要验证码。不同则必须要提交验证码。 1.4删除无效验证码 1.可以通过自动定时任务,在凌晨删除过期验证码。过期时间自己定,比如早于当前系统时间,过期一天的就是无效的,过期三小时就是无效等等。 2.还有一种很LOW的方式,就是在每次获取验证码的时候,判断当前系统时间是否为凌晨时间段,如果是,则删除无效验证码。 2.检查用户是否被锁定 通过验证码后,需要查询用户登录记录表