概述
业务流程图
前端点击发送短信按钮,后端发送短信验证码流程图。
如上图所示,我们把登录验证码保存到redis,key为手机号,值为随机码。
短信验证码登录、注册
如上图,我们生成一个随机字符串作为登录token,以token作为redis的key保存到redis,同时把token返回给前端。
前端把token作为登录凭证,每次请求资源的时候都把token放入请求头中传入后端。
校验登录状态
登录状态校验使用拦截器
如上图所示,使用两个拦截器,拦截器1用来拦截一切路径,从请求头中获取登录token,从redis中查询出用户信息并保存到线程本地变量中,然后为登录session续租,最后放行。
拦截器2主要用于拦截需要登录后才能访问的资源,先检测线程变量中是否有用户信息,没有说明没有登录拦截,有说明已经登录了放行。
ThreadLocal是线程本地变量,之所以使用它,是因为首先web服务器给每个请求提供一个线程(通常tomcat提供200个并发线程),该线程完成请求需要的逻辑,因此处理请求的相关逻辑中使用的共享变量就可以放在ThreadLocal中;其次ThreadLocal是线程独有的,是线程安全的。
参考
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/100024.html