使用短信登录和注册的流程
现在各个网站普遍使用的登录认证方式是使用短信认证登录,并且在用户与服务器交互的过程中这部分功能需要被多次调用,所以在项目中不可避免地要包括这一部分,学习之后,在此记录其流程:
实现短信认证登录可以有两种方式:基于session实现和基于redis实现。
基于session实现的过程如下:
1. 发送短信验证码:
- 用户在手机号输入框中输入一个手机号,然后点击发送验证码
- 系统校验这个手机号是否是一个正确的手机号
- 如果这个手机号不合法,则需要用户重新输入
- 如果合法,则系统根据规则生成一个验证码,并且将这个验证码存储到session域中,同时以短信形式发送给用户提供的手机号
2. 短信验证码登录、注册
- 用户收到验证码之后,输入验证码并点击登录
- 系统校验手机号(再次校验防止被修改)和验证码
- 如果验证码和session域中的的不一致,认证失败,重新验证;
- 如果验证成功进行到下一步
- 用户根据手机号登录,有可能这个手机号是第一次使用,即系统中不存在对应的用户,则创建一个新的用户,初始化必要的信息,保存到数据库中
- 此时数据库中存在一个对应的用户,将这个用户信息保存到session域中以后使用。
3. 校验登录状态
- 当用户发送请求的时候,首先判断用户是否登录,即session中是否存在用户信息,如果存在,说明用户已经登录,否则拦截请求并跳转到登录页面。使用拦截器实现。
基于redis实现:
基于session实现存在问题是:当有多个服务器的时候,session共享困难。一种解决的办法是基于redis实现。
基于redis实现的过程与基于session的过程基本一致,不同的地方在于信息不是存储在session中,而是redis中。另外一个不同点在于,由于使用redis,所以数据是不同的用户都可以访问到的,而在session中,则只有当前用户可以访问到;所以数据在redis中的存储必须为每组数据赋值为一个独一无二的键值,并且在验证登录成功之后需要将这个键值返回给客户端。
使用短信登录和注册的流程相关推荐
- 手机短信验证码一键注册登录功能开发 1
1. 首先根据业务分析, 先要在前端填写我们的手机号, 发送短信验证码给我们的用户 对于我们后端来说, 发送验证码就是我们要开发的接口, 手机号就是我们传入的参数,然后就可以编写相应的代码了 @Api ...
- 不就是个短信登录API嘛,有这么复杂吗?
引子 上联:这个需求很简单 下联:怎么实现我不管 横批:今晚上线 Part 1:暴力破解 早上开完站会,小李领了张新卡,要对登录功能做升级改造,在原来只支持用户名密码登录模式的基础上,新增手机号和短信 ...
- 《Redis实战篇》一、短信登录
1.1.导入黑马点评项目 1.1.1 .导入SQL 1.1.2.有关当前模型 手机或者app端发起请求,请求我们的nginx服务器,nginx基于七层模型走的事HTTP协议,可以实现基于Lua直接绕开 ...
- 黑马点评项目-短信登录功能
一.导入黑马点评项目 1.代码下载 视频资源链接:P25 实战篇-02.短信登录-导入黑马点评项目 代码可以直接去黑马微信公众号上搜索,或者从下面的网盘链接中下载:链接: https://pan.ba ...
- Redis(五) - Redis企业实战之短信登录
文章目录 一.导入黑马点评项目 1. 导入SQL 2. 前后端分离 3. 导入后端项目 3.1 将后端项目导入到 Idea 中 3.2 注意:修改application.yaml文件中的mysql.r ...
- 不就是个短信登录API嘛,有这么复杂吗?(转载)
重要声明: 本篇文章转载自公众号ThoughtWorks洞见(ID:TW-Insights),个人觉得文章分析问题的思路还行,如有侵权,请联系删除,谢谢. 上联:这个需求很简单,下联:怎么实现我不管, ...
- Security之短信登录篇
1.功能实现 Security默认提供的是用户名密码登录模式,然后我们参考用户名密码登录自定义实现短信登录模式 这样就多了一种登录模式,在登录的时候可以自行选择登录模式 2.security07 子工 ...
- Spring Security系列(22)- Security实现手机短信登录功能
准备 需求 采用手机号+短信验证码登录方式是很常见的一种需求. 那我们如何在Spring Security实现这种功能呢? 表单登录流程 首先再回顾一下用户名密码表单登录流程. 登录请求进入过滤器 调 ...
- redis的实战项目01_模拟短信登录业务
redis的实战项目01_短信登录 一.导入黑马点评项目 1. 数据库: 2. 单体项目介绍: 二.基于session实现登录 1.发送短信验证码 1.理论流程 2.代码操作: 2.短信验证码登录.注 ...
最新文章
- 【Unix 网络编程】TCP状态转换图详解
- 循环类里面的每一个属性
- 新垣结衣自拍照_如何阻止自拍照出现在iPhone的自拍照专辑中
- 数学建模1 赛前准备 赛题选择 查找文献
- PowerShell yarn : 无法加载文件 C:\Users\Admin\AppData\Roaming\npm\yarn.ps1,因为在此系统上禁止运行脚本。
- org.springframework.mail.MailAuthenticationException: Authentication failed 解决方案
- IEC61850报告服务(报文解析)
- HTML5学习笔记简明版(6):新增属性(1)
- C# ado.net数据库连接池,使用长连接访问数据库
- ElementUI:tree组件背景色、鼠标hover悬浮背景色、选中背景色修改
- git学习笔记-(7-高层命令(1))
- 两台redhat7虚拟机配置ssh免密访问
- Cmder安装并解决cmder here报错问题
- 兵卒情缘酒新品上市发布会
- 表格固定表头,tbody加滚动条
- [审核]审核被拒(陌生社交应用)
- Eclipse 汉化教程完美版
- 随机效应估算与固定效应估算_固定效应模型的估计原理说明.pdf
- IDEA自定义注释模板(javadoc)
- 【读书笔记】【思考总结】《AKF15条架构原则》
热门文章
- Bellman Equation 贝尔曼方程
- 汉信码(Hanxin Code)与QR码(QR Code)的终极对决
- 语雀批量导出MarkDown文件
- PowerPoint储存此文件时发生错误 出现错误的问题解决方法
- Electron-Builder打包时报错could not find: “\XXX\0-messages.nsh“
- 大小不同图片归一化到给定大小
- php实现发表情分页_php实现分页效果
- Python 爬取优美图库图片
- has leaked window com.android.internal.policy.impl.PhoneWindow解决(Dialog.cancel、dismiss、hide区别)
- windows调整jadx的使用内存大小