一、注册模块实现
前端页面
通过页面可知、注册需要先通过发送验证码给手机号码然后输入正确的验证码后才能进行注册。
后端实现
-
验证码模块
点击发送验证码会请求后端接口/otp/{phone}、找到对应的controller实现。
由代码可知分成三步、生成验证码->绑定验证码–>发送验证码
生成验证码的函数可知是随机生成4位数。
将验证码绑定到session中、然后再发送。 -
注册模块
单击注册之后会请求后端的/register接口、找到对应的处理器
由代码可知、会先验证验证码是否正确、不正确会抛一个异常提示验证码不正确。正确就会先将用户密码MD5加密后、调用service然后给dao层添加到user_info表中。
二、登录模块
前端页面
由前端页面可知登录账号为手机号码
后端实现
输入账号密码后会调用/login接口请求方式为post、找到对应的处理器
通过代码可知、和常规的处理登录一样、先判断接收的账号密码是否为空、为空就抛出异常参数不合法。参数输入正常、会将密码通过md5加密再传到service层、service层通过调用dao层查询数据库判断是否有这个用户、并且判断密码是否正确。登录成功会在session中纯一个键为loginUser值为user的对象,目的是用于未登录的情况下限制访问。
三、总结
总而言之、这个秒杀项目的登录注册非常普通没有什么特殊的技术。面试时可能会问到分布式下单点登录是如何实现的,这里放一个介绍单点登录的文章。
面试必问的4种单点登录的实现方式,你知道几个?