后端实现用户登录和注册的拦截器

1.注册

要对用户注册时设置的用户名、密码等做一些规定,比如用户名的合法性:允许使用的字符、允许的长度、不允许重复、不允许出现敏感词;密码的安全性:长度要求、字符要求等。在保存密码时,使用加密后的密文保存,以防万一。为了防止批量注册,可以增加邮箱/手机验证。

 2.登录

如果用户登录时输入的用户名或密码不正确,可以适当地给用户反馈一些提示信息;在密码校验成功后,发放 token 令牌给用户,并进行登记,token 可以有多种实现方式,而 cookie 是在浏览器客户端被广泛使用的一种。从浏览器请求中获取 cookie 会用到 HttpServletRequest 中的 getCookies() 方法,而添加 cookie 用到的是 HttpServletResponse 中的 addCookies() 方法。

服务端将令牌存储在数据库中,与用户 id 相关联。在数据库创建 login_ticket表,model 包创建 LoginTicket类,完成对应的 LoginTicketDAO,之后完成登录的业务逻辑。

3.登录状态验证 - 拦截器

当用户密码验证通过后,服务端给用户发放一个 token 令牌,保存在浏览器的 cookie 中,通常这个令牌只有一段时间的有效期。当客户端通过浏览器访问时,服务端就可以通过验证令牌来确认客户端的身份,只有在令牌存在且处于有效状态才可以通过验证,用拦截器 interceptor 可以实现 token 的校验。

新建 interceptor 包,创建 PassportInterceptor 类,继承 HandlerInterceptor,重写 preHandle(), postHandle(), afterCompletion() 方法。


新建 config 包,创建 WebConfig 类,继承 WebMvcConfigurer,重写 addInterceptors() 方法注册拦截器。

 
要同时处理多个用户的请求,就要用到多线程,在 model 包建一个 User 多线程的类,成员变量为 ThreadLocal<User>类型。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值