Redis限制一键登录次数

news2024/11/17 17:55:03

image

二、解决思路

======

因为项目实现一键登录采用的是 自有服务器调用 所以限制一键登录分为两步走,因为每个手机号有唯一的openid所以拿openid做redis的key值

(1)、调用云函数之前


调用云函数之前,前端会发起请求给后台,拿到这个请求后去 Redis 中检查2小时的登录次数如果大于设定阈值就返回限制一键登录次数,否则就放行通过

(2)、调用云函数


调用时使用Redis的 setNX()(命令在指定的 key 不存在时,为 key 设置指定的值,这种情况下等同 SET 命令。当 key存在时,什么也不做。)因为第一次不存在key所以设置一个初始值和过期时间。接下来使用Redis的 incrBy() 使value自增,每次调用value就+1。

三、上手编码

======

(1)、调用云函数前编码


public static void checkOneLogin(String openid) {

if (StringUtils.isBlank(openid)) {

“参数校验,抛出自定义异常即可”;

}

//从Redis获取该用户半小时内登录次数

String s = RedisHelper.get(RedisHelper.get(openid));

//如果为空直接返回

if (StringUtils.isBlank(s)){

return;

}

//如果redis存储OpenId并且 value大于10抛出异常

if (Integer.parseInt(s) >= 10) {

log.info("[日志]用户{}在{}因

一键登录次数过多,被暂时禁止一键登录",openid,new Date());

“记录日志,抛出异常”;

}

}

复制代码

(2)、调用云函数编码


public static void oneLoginOK(String openid) {

//首次进入赋予默认值

boolean nx = RedisHelper.setNx(RedisHelper.get(openid), “1”, 60 * 30);

//首次进入返回

if (nx) {

return;

}

//登录成功自增1

Long incr = RedisHelper.incrBy(RedisHelper.get(openid));

if (incr >= 10) {
f (nx) {

return;

}

//登录成功自增1

Long incr = RedisHelper.incrBy(RedisHelper.get(openid));

if (incr >= 10) {

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/82783.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Metal每日分享,调整对比度滤镜效果

本案例的目的是理解如何用Metal实现调整对比度效果滤镜,调整对比度就是在保证平均亮度不变的情况下,扩大或缩小亮的点和暗的点之间的差异; Demo HarbethDemo地址 实操代码 // 对比度 let filter C7Contrast.init(contrast: 2.0)// 方案1:…

小红书热点怎么蹭?10个技巧,手把手带你用好热点

我们知道,热点是撬动流量的支点,运用得当能产生强大的爆发力,不论博主还是品牌都十分关注。那么小红书热点在哪里?怎么蹭热点?今天就来和大家聊聊,通过小红书热词排行榜、话题热度排好,蹭热点的…

【clickhouse】Centos7部署Clickhouse数据库

目录 1.clickhouse数据库安装说明 2.clickhouse数据库安装介质 3.clickhouse数据库安装前配置 3.1配置操作系统yum源(可选) 3.2配置NTP客户端 3.3配置sudo、NetworkManager、firewalld、selinux 3.4创建用户 3.5修改系统参数与限制 3.6修改主机名…

阿里云国际版旗舰级分销商-容器服务 ACK介绍

阿里云国际版容器服务Kubernetes版,简称容器服务ACK,是全球首批通过Kubernetes一致性认证的服务平台,提供高性能的容器应用管理服务,支持企业级Kubernetes容器化应用的生命周期管理,让您轻松高效地在云端运行Kubernete…

latex中的数学字体mathfont

最近遇到了调整latex中的数学字体的问题,虽然折腾一番发现我需要的就是默认字体(靓仔无语),但是还是了解到了不少内容,记录一下。 你想要的是什么字体? 1、要是有tex源码,又不想看cls文件&…

C++ 跨平台文件读写

还在使用linux 自带的系统函数 fread 、fwrite么? 考虑一下使用C 的ifstream、ofstream 一套代码,多平台运行,解放需要使用宏定义做平台区分读写的麻烦。 ios::in 读文件ios::out 写文件(覆盖写)ios::binary 二进制方…

树状数组求逆序对

由于树状数组的数学原理证明是很复杂的,使用树状数组基本只需要知道它可以支持单点修改和区间查询即可。并且要知道,树状数组的作用是维护一段支持修改的区间和。 树状数组结构 下面是树状数组的图示: 真正的数据是a[1]-a[8]这段数组。上面…

零基础学FPGA(七):Altera FPGA管脚简述

日常唠嗑 同上一篇文章术语:Xilinx及Altera FPGA 配置名词区分,本篇文章也是短文,简述Altera FPGA芯片的管脚,供FPGA同行快速查阅信息。如果需要细入研究,可以网上检索看看,文章很多,写的也很详…

马哈鱼SQLFLow数据血缘分析器增量分析血缘任务

马哈鱼数据血缘分析器是一个分析数据血缘关系的平台,支持对大量复杂的数据快速准确的分析,支持分批增量分析血缘。 本文主要介绍如何利用马哈鱼增量分析任务。 使用步骤 登录sqlflow-api(SQLFLow接口文档),http://1…

外汇天眼:本周监管状态已更新,以下平台请远离!

监管信息早知道!外汇天眼将每周定期公布监管牌照状态发生变化的交易商,以供投资者参考,规避投资风险。 以下是监管牌照发生变动的交易商平台,注意警惕! VS FX威胜 VS FX威胜,其宣称持有的美国NFA普通金融牌…

深入理解DOM

一、DOM 基本概念 DOM全称 Document Object Model,即文档对象模型,它允许脚本(js)控制Web页面、窗口和文档。 DOM 标准被分为 3 个不同的部分: 1、核心 DOM - 针对任何结构化文档的标准模型 2、XML DOM - 针对 XML 文档的标准模型 3、HT…

预制菜持续火热,食品制造企业如何利用APS自动排程实现生产管理标准化?

在今年预售榜单中,预制菜表现夺人眼球,在天猫“双11”活动的预售第一阶段强势出圈。在众多预售产品中,酸菜鱼已经成为消费者加购的爆品,成为雄霸“双11”预制菜预售榜单之首。 酸菜鱼是川菜的经典菜品,但现在已经突破地…

react源码中的fiber架构

先看一下FiberNode在源码中的样子 FiberNode // packages/react-reconciler/src/ReactFiber.old.js function FiberNode(tag: WorkTag, pendingProps: mixed, key: null | string, mode: TypeOfMode, ) {// Instancethis.tag tag;this.key key;this.elementType null;t…

Redis框架(六):大众点评项目 缓存更新策略 实现双写

大众点评项目 众点评项目 缓存更新策略 实现双写需求:缓存更新策略业务实现特殊情况展示SpringCloud章节复习已经过去,新的章节Redis开始了,这个章节中将会回顾Redis实战项目 大众点评 主要依照以下几个原则 基础实战的Demo和Coding上传到我…

GIS空间分析之密度分析

密度分析结果可以显示出点要素或线要素较为集中的地方。例如,每个城镇都可能有一个点值,这个点值表示该镇的人口总数,但是您想更多地了解人口随地区的分布情况。由于每个城镇内并非所有人都住在聚居点上,通过计算密度,…

网络安全学习路线,入门到入坟,史上最全网络安全学习路线整理

很多小伙伴在网上搜索网络安全时,会出来网络安全工程师这样一个职位,它的范围很广,只要是与网络安全挂钩的技术人员都算网络安全工程师,一些小伙伴就有疑问了,网络安全现在真的很火吗? 那么寒哥就带大家看…

美港探案:不理想的理想Q3,能否守得云开见月明?

12月9日,港股盘后理想汽车发布了2022年第三季度业绩报告。探员就迫不及待的去理想的官网上看了这份Q3业绩报告,整体数据很不理想,但是也都在探员的预料之内,但是探员对于理想依然是充满了热爱,在电动三傻中对理想也是情…

优美的曲线-turtlesim

从开环到闭环的旅程-CoCube 优美的曲线-译 2022年所公开博客案例所有项目,都在2020年之前完成,并且全部经过3轮以上测试。 当完美实现闭环之后,画曲线那就可以随心所欲啦。 想画什么,就能画什么。 核心代码: float …

DubboSPI使用以及使用方式源码解读

DubboSPI流程图 为什么Dubbo要自己实现SPI java spi 会一次性实例化扩展点所有实现,机制并不能根据获取自己想要的类 获取一个类的实现对象 javaSPI 具有局限性: 1、没法给实现类起别名 2、没法实现包装类。类似AOP的原理 3、没法实现自动注入 4、没法…

[附源码]Python计算机毕业设计SSM基于大数据的汽车流量监控(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…