App开发中利用Mob实现免费短信验证码

2024-09-06 22:58

本文主要是介绍App开发中利用Mob实现免费短信验证码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  涉及到用户注册的App经常会涉及到短信验证码,但是对于独立开发者来说,不可能因为几百几千个用户就去购买上千成本的短信验证码服务,因此,实现免费验证码便是开发中很重要的一个诀窍

  可能很多用户都已经知道Mob这个网站了,他们提供了著名的ShareSDK,还有手游录像等工具,当然也提供了本文的主角,Mob免费短信sdk。

  天下没有“完美的免费午餐”,因此,Mob提供的所为免费验证码,一定是有限制的,那么限制是什么呢?

  限制主要体现在:无法自定义短信内容、无法获知验证码具体数值

  第一点,具体为Mob的短信内容固定为:[App名字]的验证码为:1234 【掌淘科技】

  掌淘科技估计为Mob提供这个服务所用的公司,其实这一点对于我们独立开发者来说也不是很头疼,用户大多数情况下根本不会在意验证码里面的其他提示语,只会在乎高亮的数字。

  但是第二点很致命,Mob的sdk是客户端sdk,也就是给ios和安卓调用,但是,只提供了一个发送方法:发送验证码(手机号) 。也就是说,具体到底发送给用户的是什么数字,我们无从知晓。我们要验证验证码只能用Mob提供的方法:验证(手机号,用户输入的验证码)  得到true或者false的结果。

  想象一下以下情况:用户找回密码,输入手机号,获取验证码,然后输入验证码,程序用Mob的接口进行验证,验证成功,然后进行重新设置密码。这里出现了一些问题,重新设置密码这个接口没有进行安全检验,我们希望这个后台api接口能检验一下验证码,然后再确保请求的用户是该账户的主人,进行设置密码。但是后台api无从获取验证码,客户端也无从获取,唯一获取验证码的途径是:用户的输入。

  因此要解决这个问题,后来我采取了如下解决方案。

  整个的验证码流程变成如下:

  1.用户输入手机号并点击发送验证码  

  2.客户端调用sdk接口发送验证码  

  3.用户输入验证码点击验证  

  4.客户端将用户的手机号和输入的验证码传递给自己的服务器api接口  

  5.api再将手机号和验证码post给mob提供的接口,如果验证成功,则将验证码记录到数据库

  6.客户端再将验证码传递给密码修改、用户注册接口,这时候服务器就可以根据数据库里记录的验证码进行验证对比了

  可能有些朋友没听懂我在说什么吧,总结一下就是,Mob没有让我们知道验证码具体内容,但是我们有时候需要知道这个验证码,以上步骤就解决了我们无法获取验证码的问题

  至此,我们就可以利用Mob的短信验证码sdk完成小规模的短信验证码功能了。按照我实际的体验来看,Mob还算比较稳定,95%能够发送到达,毕竟免费。

  以上仅仅是个人经验,如果你的App用户较大,追求100%的稳定,还是要去购买正规短信验证码一劳永逸哦!

这篇关于App开发中利用Mob实现免费短信验证码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1143353

相关文章

C++中unordered_set哈希集合的实现

《C++中unordered_set哈希集合的实现》std::unordered_set是C++标准库中的无序关联容器,基于哈希表实现,具有元素唯一性和无序性特点,本文就来详细的介绍一下unorder... 目录一、概述二、头文件与命名空间三、常用方法与示例1. 构造与析构2. 迭代器与遍历3. 容量相关4

C++中悬垂引用(Dangling Reference) 的实现

《C++中悬垂引用(DanglingReference)的实现》C++中的悬垂引用指引用绑定的对象被销毁后引用仍存在的情况,会导致访问无效内存,下面就来详细的介绍一下产生的原因以及如何避免,感兴趣... 目录悬垂引用的产生原因1. 引用绑定到局部变量,变量超出作用域后销毁2. 引用绑定到动态分配的对象,对象

SpringBoot基于注解实现数据库字段回填的完整方案

《SpringBoot基于注解实现数据库字段回填的完整方案》这篇文章主要为大家详细介绍了SpringBoot如何基于注解实现数据库字段回填的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解... 目录数据库表pom.XMLRelationFieldRelationFieldMapping基础的一些代

Java HashMap的底层实现原理深度解析

《JavaHashMap的底层实现原理深度解析》HashMap基于数组+链表+红黑树结构,通过哈希算法和扩容机制优化性能,负载因子与树化阈值平衡效率,是Java开发必备的高效数据结构,本文给大家介绍... 目录一、概述:HashMap的宏观结构二、核心数据结构解析1. 数组(桶数组)2. 链表节点(Node

Java AOP面向切面编程的概念和实现方式

《JavaAOP面向切面编程的概念和实现方式》AOP是面向切面编程,通过动态代理将横切关注点(如日志、事务)与核心业务逻辑分离,提升代码复用性和可维护性,本文给大家介绍JavaAOP面向切面编程的概... 目录一、AOP 是什么?二、AOP 的核心概念与实现方式核心概念实现方式三、Spring AOP 的关

一文详解Python如何开发游戏

《一文详解Python如何开发游戏》Python是一种非常流行的编程语言,也可以用来开发游戏模组,:本文主要介绍Python如何开发游戏的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、python简介二、Python 开发 2D 游戏的优劣势优势缺点三、Python 开发 3D

Python实现字典转字符串的五种方法

《Python实现字典转字符串的五种方法》本文介绍了在Python中如何将字典数据结构转换为字符串格式的多种方法,首先可以通过内置的str()函数进行简单转换;其次利用ison.dumps()函数能够... 目录1、使用json模块的dumps方法:2、使用str方法:3、使用循环和字符串拼接:4、使用字符

Linux下利用select实现串口数据读取过程

《Linux下利用select实现串口数据读取过程》文章介绍Linux中使用select、poll或epoll实现串口数据读取,通过I/O多路复用机制在数据到达时触发读取,避免持续轮询,示例代码展示设... 目录示例代码(使用select实现)代码解释总结在 linux 系统里,我们可以借助 select、

Linux挂载linux/Windows共享目录实现方式

《Linux挂载linux/Windows共享目录实现方式》:本文主要介绍Linux挂载linux/Windows共享目录实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录文件共享协议linux环境作为服务端(NFS)在服务器端安装 NFS创建要共享的目录修改 NFS 配

基于Python开发Windows自动更新控制工具

《基于Python开发Windows自动更新控制工具》在当今数字化时代,操作系统更新已成为计算机维护的重要组成部分,本文介绍一款基于Python和PyQt5的Windows自动更新控制工具,有需要的可... 目录设计原理与技术实现系统架构概述数学建模工具界面完整代码实现技术深度分析多层级控制理论服务层控制注