ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

三高商城思想

2022-07-21 19:34:00  阅读:170  来源: 互联网

标签:三高 需要 登录 思想 redis 验证码 实体类 我们 商城


 

 

 

 

 

 首先登录需要获取验证码

 

 然后我们需要根据第三方服务发送验证码

 

 我们需要将验证码存入redis中  存储的key为 sms:code:phone  value为 生成的验证码+系统当前时间  在redis中存活时间暂定为1小时

 

如果用户在一分钟内多次请求发送短信验证码(这里虽然前段会进行设置,但是为了预防有人恶意申请短信 而造成短信资源的浪费 我们后端接口也需要设计1min钟内,用户无法继续申请该接口)

我们就需要在获取验证码之前 先去redis中获取 根据key为sms:code:phone 获取值  若值不为空  那么我们就取出redis中的值 然后截取出时间部分 和现在的时间比较 是否在1min中之内  如果是 则返回自定义error信息 如果超过1min 那么可以继续申请获取验证码

 -----

当用户提交登录表单 时我们需要对表单进行JSR303验证

 

 

 

 如果表单中提交的信息不满足实体类中的验证信息  则抛出异常

 

 由bingdingResult 接受异常  我们再将异常遍历  put到我们创建的hashMap中

 

然后我们需要将错误添加到model中 再将地址重定向到注册页面

否则 代表登录合法

此时 我们需要获取到用户提交的手机号 拼接上 验证码的前缀 去redis中获取 验证码  并截取出验证码字段  如果从redis中获取的验证码和表单传过来的验证码不一致  那么我们仍需要将页面重定向到注册页面  返回对应的验证码和 错误信息

 

 如果验证码正确  那么我们需要删除 sms:code:phone 的key

然后去注册  我们需要设置注册用户的默认等级  用户的username  用户的phone  因为这两个字段是在数据库中是唯一的所以我们需要在插入字段前 需检查该字段是否存在

 

 

 

如果count=0说明之前不存在该账号和手机号  说明当前账号和手机号是可以注册的

接着我们需要设置NickName 为了方便和UserName同名

接着 我们需要将用户注册的密码加密 

 

 

 如果注册成功

那么就将页面跳转到主页  否则注册不成功 就将错误添加到model中返回给注册页面

 

-----------

如果该注册成功用户第二次登录,那么我们需要获取到他的登录信息  账号和密码  同样我们需要进行验证

 

 如果验证错误 则会抛出异常 由我们的全局异常进行捕获

 

 将错误信息添加到 redirectAttributes 中 重定向到登录页面

如果验证成功 我们需要调用member服务进行数据库查询(根据账号(或者手机)和密码登录)  如果确实存在 该登录用户  那么我们需要将该用户存在数据库中加密的密码解密 和输入的密码进行比对 如果匹配  则将该对象实体类返回给认证模块

 

 如果认证模块接受到该实体类 那么就将该实体类存入到session中  userLogin,实体类

然后重定向到首页面  否则就重定向到登录页面

 

 

当我们将member数据存入session 中  我们跨服务调用 是调用不了的  我们需要配置sessionConfig

 

 同时  我们要将实体类存入到redis中我们需要将实体类打成二进制 存入redis中  否则会出现无法序列化

 

我们需要配置一下内容

 

 

 

 

 这样我们就能获取到父域名相同,session共享问题

 

标签:三高,需要,登录,思想,redis,验证码,实体类,我们,商城
来源: https://www.cnblogs.com/Lcch/p/16503183.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有