当前位置: 首页 > 后端技术 > Java

Java登录模块设计

时间:2023-04-01 19:06:34 Java

登录流程前端登录传递用户名和md5加密密码后端是md5加密密码,或者使用md5加密密码+id进行salt加密,增加了密码的难度开裂。登录成功后,这里分为单体,或者单体在分布式情况下比较简单。登录成功后,将用户信息保存在后端session中的setAttribute中。后续登录在拦截器中获取session,查询session。服务器集群和分布式服务器存在会话共享问题。使用jwt解决问题,使用ip,用户信息生成token值,返回给前端。在登录拦截器中,解析每次传过来的token,匹配ip和用户信息,将用户信息与数据库进行核对。但是查看数据库会增加数据库的压力,所以也可以将token存放在redis中,解析后在redis中查看用户信息和token信息。选择性使用鉴权登录信息对于http请求,有的请求需要登录才能访问,有的可以不用登录直接访问,这里使用注解的方式,在需要登录的接口使用自定义注解访问@login,在类或方法上注释。客户端请求后端接口时,如果类或方法上没有登录注解,则不会进行用户信息校验。总结前端密码通过md5密码传给后端,后端用salt对密码进行加密。对于分布式服务或者集群服务,使用jwt生成token用于后续数据校验,后续数据校验一般使用拦截器校验。并非所有接口都需要数据验证。对于需要登录访问的接口,在类中添加登录注解,没有注解的类不进行数据校验。代码示例github登录源码github拦截器源码