Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【redis】应用场景:共享会话和手机验证码

【redis】应用场景:共享会话和手机验证码

作者头像
椰椰椰耶
发布于 2025-03-12 00:57:10
发布于 2025-03-12 00:57:10
14000
代码可运行
举报
文章被收录于专栏:学习学习
运行总次数:0
代码可运行

共享会话

实现思路

如果每个应用服务器,维护自己的会话数据,此时彼此之间胡共享,用户请求访问到不同的服务器上,就可能会出现一些不能正确处理的情况了


为了解决这个问题,可以使用 Redis 将用户的 Session 信息进行几种管理,在这种模式下,只要保证 Redis 是最高可用和可扩展性的,无论用户被均衡到哪台 Web 服务器上,都集中从 Redis 中查询、更新 Session 信息!

image.png|383
image.png|383

手机验证码

实现思路

  1. 生成验证码
    • 用户输入手机号
    • 点击获取验证码(限制:1min 之内,最多获取 5 次)
  2. 检查验证码
    • 短信收到的验证码这一串数,提交到系统中,验证是否正确

伪代码实现

生成验证码
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
String 发送验证码(phoneNumber) {
	key = "shortMsg:limit:" + phoneNumber;
	// 设置过期时间为 1 min
	//使用 NX,只在不存在 key 时才能设置成功
	bool r = Redis 执行命令: set key 1 ex 60 nx
	if (r == false) {
		// 说明之前设置过该手机的验证码了
		long c = Redis 执行命令: incr key
		if (c > 5) {
			// 说明超过一分钟 5 次的限制了
			// 限制发送
			return null;
		}
	}
	
	// 说明要么之前没有设置过手机验证码;要么次数没有超过 5 次
	String validationCode = 生成随机的 6 位数的验证码();
	
	validationKey = "validation:" + phoneNumber;
	// 验证码 5 分钟内有效
	Redis 执行命令: set validationKey validationCode ex 300;
	
	// 返回验证码
	return vaildation;
}
验证验证码
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 验证用户输入的验证码是否正确
bool 验证验证码(phoneNumber, vaildation) {
	vaildationKey = "vaildation:" + phoneNumber;
	
	String value = Redis 执行命令: get vaildationKey;
	if (value == null) {
		// 说明没有这个手机验证码记录,验证失败
		return false;
	}
	
	if (value == vaildationCode) {
		retrurn true;
	} else {
		return false;
	}
}

像发送短信这样的操作,都是有专门的 SDK 来实现的(第三方提供的短信平台服务)(充值)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-03-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
springboot整合redis发送手机验证码注册登录
短信验证码是通过发送验证码到手机的一种有效的验证码系统。主要用于验证用户手机的合法性及敏感操作的身份验证。常见的使用场景有:登录注册、信息修改、异常登录、找回密码等操作。 用户注册发送验证码,然后核实对比用户注册成功采用redis方式将手机号码+key放入redis缓存中设置验证码超时时间,比对用户名和验证码采用数据库存储方式,注册时拿取redis中验证码进行判读验证码是否过期是否匹配。
崔笑颜
2020/06/08
7.5K0
②手机验证码登录功能:Redis实现session共享
.29.
2023/12/29
2910
②手机验证码登录功能:Redis实现session共享
Redis实现手机验证码功能
完成一个手机验证码功能 要求: 1、输入手机号,点击发送后随机生成6位数字码,2分钟有效 2、输入验证码,点击验证,返回成功或失败 3、每个手机号每天只能输入3次 流程分析 [在这里插入图片描述] 代码实现 public class PhoneCode { public static void main(String[] args) { //模拟验证码发送 verifyCode("12345678910"); } //1.生成6位数字验证码 p
兮动人
2022/02/26
3.8K0
django 发送手机验证码
一、流程分析: 1.用户在项目前端,输入手机号,然后点击【获取验证码】,将手机号发到post到后台。 2.后台验证手机号是否合法,是否已被占用,如果通过验证,则生成验证码,并通过运行脚本,让短信运营商向该手机号,发送该验证码,如果没通过验证,则返回错误信息 3.用户收到短信验证码以后,再次将所有信息post到后台。 4.后台验证各个数据,通过验证则完成实名制认证,如果没通过则返回错误信息。 总结,一次实名验证,需要两次ajax+post 二、对接短信商: 1.在云片网端: 1.注册云片网 地址:https:
玩蛇的胖纸
2018/06/08
9K0
手机验证码有什么作用?它是如何实现自动发送的
手机验证码对于很多人来说肯定不陌生,如果使用的app比较多或者做的一些任务比较多,每天收短信验证码的数量可能就已经超过了十个。手机验证码的获取很简单,只需要通过某一个客户端,输入自己的手机号码,然后点击获取验证码即可,非常方便。手机验证码让平时记不住密码的人获得了解放,也保护了我们的账号安全,那么手机验证码究竟有什么作用呢?它又是如何自动发送的?
用户8739405
2021/07/09
5.4K0
【渗透技巧】手机验证码常见漏洞总结
  手机验证码在web应用中得到越来越多的应用,通常在用户登陆,用户注册,密码重置等业务模块用手机验证码进行身份验证。针对手机验证码可能存在的问题,收集了一些手机验证码漏洞的案例,这里做一个归纳总结,在测试中,让自己的思路更加明确。常见的手机验证码漏洞如下:
Bypass
2019/07/08
10.3K0
【渗透技巧】手机验证码常见漏洞总结
程序员过关斩将--从用户输入手机验证码开始
验证用户的有效性或者安全性,是每个系统必备的安全措施,在移动端优先的时代,利用手机验证码来验证用户,算是安全系数比较高的手段。放眼当下几乎所有的互联网应用几乎都开放了手机验证码登录,而且应用内的敏感操作都需要手机验证码或者指纹,甚至面部识别来确定当前操作人的权限。
架构师修行之路
2020/05/12
7030
腾讯云短信服务实现 Java 发送手机验证码(SpringBoot+Redis 实现)
前置:需要腾讯云的账号,后期授权需要,不需要买云服务器,有需要的可以购买短信套餐(几块钱)
RAIN7
2022/08/23
3.4K0
腾讯云短信服务实现 Java 发送手机验证码(SpringBoot+Redis 实现)
SpringBoot项目中快速集成腾讯云短信SDK实现手机验证码功能
大家春节好!我是程序员阿福,今天过年的日子祝大家在新的一年里健康平安、步步高升、虎年大吉大利、财源滚滚! 今天分享一篇简短一点的文章,希望在将来工作中需要的时候能够用得到,如果将来工作中需要实现短信验证码功能时可以打开我的公众号并翻到这篇文章再仔细参考我的实现思路,那么笔者分享这篇文章的用意也就达到了。
用户3587585
2022/03/09
4.4K1
SpringBoot项目中快速集成腾讯云短信SDK实现手机验证码功能
臭名昭著的手机验证码功能是如何实现的
现在基本上各种手机APP注册都会用到手机验证码,包括一些PC端网站也会使用手机号作为唯一标识验证!
小柒2012
2020/04/21
1.6K0
你的 Java 验证码和登录程序中可能也存在这样的漏洞
进行这个整理,是因为在XXX项目的时候,发现登录模块的忘记密码功能,在验证用户身份的时候是通过手机验证码验证的。通过修改响应包的返回参数值,可以绕过验证,进入第三步的密码重置。还有最近测试的一个sso登录,也存在验证码问题。
业余草
2020/02/11
2.4K0
java实现发送手机验证码功能
1. 进入秒嘀科技(http://www.miaodiyun.com/),注册一个账号
全栈程序员站长
2022/09/13
4.1K0
java实现发送手机验证码功能
短信验证码登录你会吗?
今日主题:短信验证码登录 简介 相信大家在很多网站进行登录的时候,都见过短信验证码登录吧,那现在就来看看怎么实现吧 原理说明 首先我们需要一个短信发送接口,前端发送手机号码到后端,后端随机生成一个验证
java后端指南
2021/05/13
1.7K0
短信验证码登录你会吗?
【Redis篇】String类型命令详讲以及它的使用场景
Redis的基本使用命令(GET,SET,KEYS,EXISTS,DEL,EXPIRE,TTL,TYPE)_php redis get exists-CSDN博客
用户11369558
2024/12/24
1770
【Redis篇】String类型命令详讲以及它的使用场景
注册页面表单js验证,手机验证码验证,阻断提交表单的可行性方案(移植性极强)
1、html表单部分如下,样式使用的是AdminLTE前端框架,可以不理会。简要说明一下:
jiankang666
2022/05/12
3.7K0
注册页面表单js验证,手机验证码验证,阻断提交表单的可行性方案(移植性极强)
发送手机验证码实现
但是刚才试了,第一次用官方提供的demo发送成功,然后整合到自己项目中,调试时由于参数配置错误导致发送了几次失败后,5次就用完了。按理说成功才能算一次,果断放弃。
我的小碗汤
2018/08/22
13.7K0
发送手机验证码实现
vue实现短信验证码登录
无论是移动端还是pc端登录或者注册界面都会见到手机验证码登录这个功能,输入手机号,得到验证码,最后先服务器发送请求,保存登录的信息,一个必不可少的功能
小周sir
2019/09/23
16.5K1
vue实现短信验证码登录
js获取手机验证码倒计时的实现
原文地址http://blog.csdn.net/hj7jay/article/details/51433828
用户1219438
2018/12/14
2.7K0
VueblogServer项目短信验证码登录功能前端实现
上次我在本人的公众号上发了一篇后端Spring Security认证框架下实现手机短信验证码登录功能的文章手把手带你在集成SpringSecurity的SpringBoot应用中添加短信验证码登录认证功能,但是用户不可能通过调用接口去认证,只会是在前端页面通过点击按钮来登录认证,这就涉及前端功能的实现及与后端接口的联调了。
用户3587585
2022/04/14
1.6K0
VueblogServer项目短信验证码登录功能前端实现
黑马瑞吉外卖之移动端验证码登录使用qq邮箱
pc端的后台管理我们剩下有订单明细还没有进行开发,由于订单这边需要移动端下单后才可以看到订单,所以我们需要去先在移动端开发一些功能后,再回过头让订单这边进行一个展示。
兰舟千帆
2022/10/04
1.5K0
黑马瑞吉外卖之移动端验证码登录使用qq邮箱
推荐阅读
相关推荐
springboot整合redis发送手机验证码注册登录
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验