大家晚上好,主播今天照旧晚上更新。简单说一下今天的进度吧,写了几个配置类,一个jwt拦截器用于身份认证,登录注册的相关业务逻辑,还有一些问题的修复。其实仔细想想似乎也没啥好说的,因为我的登录和注册功能主要是围绕手机号和密码进行的,因此相关的业务逻辑就围绕我自己的设计展开。

简单来说,登录和注册这两部分我读是先用过手机号来判断是否已经注册,可以用mybatis-plus的lambdaquerywrapper来实现,看返回行数就可以知道数据库存不存在这个手机号了。接下来注册就可以通过自定义的Bcrypt相关的工具类来对用户自定义密码进行加密插入到数据库里就可以了,登录就直接反过来,从数据库查到对应的实体就获得经过加密的密码进行解密对比即可。

然后比较重要的点就是jwt相关的拦截器了,可以定义一个jwtinteceptor类去实现handleinteceptor。定义这个拦截类的目的就是在可以对用户进行身份验证,因为你在登录逻辑中一般会给前端返回jwt的token,让前端在登录成功后每次向服务器发请求都可以携带一个用于身份验证的token,假如说token没有则会被直接拦截。首先你可以先对handle进行判断,判断是否是controller,假如说是静态文件的话就直接放行。在判断是对控制器的请求之后就可以获取request的请求头,这里保险起见可以判断是否为空或存在,是的话直接拒绝就可以了。一般来说前段传过来的请求头格式可能是“Bearer token”这类,因此你可以判断是否是以Bearer 开头,是的话直接subString截取就可以了。获得了token之后就可以通过之前定义的jwtutil工具类中的验证方法查看token是否有效。这里主播还另外定义了一个userholder工具类,使用threadlocal存储当前线程的用户id,记得在aftercomplete中清理就可以了

今天先说那么多,大家晚安,也欢迎大家给出你们宝贵的建议。

Logo

电商企业物流数字化转型必备!快递鸟 API 接口,72 小时快速完成物流系统集成。全流程实战1V1指导,营造开放的API技术生态圈。

更多推荐