短信验证的实现方式

今天呢,我们来讲一讲短信验证的实现

    短信验证是企业给消费者(用户)的一个凭证,通过短信内容的码来验证身份。

    它的使用范围非常的广,就目前来说,使用的最普遍的有各大银行网上银行、网上商城、团购网站、票务公司

等。短信验证码利用短信验证码来注册会员,大大降低了非法注册,烂注册的数据。


    首先短信验证我们需要一个MOB的网址,进入网址之后,我们先要注册一个账号,

    进入后台,添加一个应用,他会给出


   然后点击MOB官网首页的

    点进去之后我么会看到这么一个界面

    我们可以根据我们的需求来下载SDK。

  在下载好的SDK里面  我们找到这几个文件,

  然后将导入工程的lib中,进行编译。

  之后在我么创建好的工程中找到build.gradle,在里面的底部,加入

repositories{
    flatDir{
        dirs 'libs' //就是你放aar的目录地址
    }
}
dependencies中添加
compile name:'SMSSDK-3.0.0',ext:'aar'
compile name:'SMSSDKGUI-3.0.0',ext:'aar'
  
	这里需要注意代码里的3.0.0是要根据我们下载好的SDK来进行修改

接下来在AndroidManifest.xml中添加以下权限:
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

然后创建一个Application类 里面
MobSDK.init(this, "210bc97e33e86", "b27ba337e16c6d584346668860616e38");
这里的两个字符串是从我们第一步进入后台创建应用之后给出的值(注意一定要把它替换)


最后一步,那就是在我们的MainActivity中的监听事件中添加以下代码

		RegisterPage registerPage = new RegisterPage();
                    registerPage.setRegisterCallback(new EventHandler() {
                        public void afterEvent(int event, int result, Object data) {
// 解析注册结果
                            if (result == SMSSDK.RESULT_COMPLETE) {
                                @SuppressWarnings("unchecked")
                                HashMap<String,Object> phoneMap = (HashMap<String, Object>) data;
                                String country = (String) phoneMap.get("country");
                                String phone = (String) phoneMap.get("phone");

                            }
                        }
                    });
                    registerPage.show(MainActivity.this);

  就这样,我们的短信验证完成了。
	
  当然,短信验证的实现还有其他方式,本文章只供参考。
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
手机短信验证是一种常用的用户身份验证方式实现手机短信验证需要以下步骤: 1. 用户输入手机号码,点击发送验证码按钮。 2. 后端接收到请求后,生成一个随机的验证码,并将其保存到缓存中(如Redis),同时将验证码发送给用户的手机。 3. 用户输入收到的验证码,点击验证按钮。 4. 后端接收到请求后,从缓存中获取对应手机号码的验证码,与用户输入的验证码进行比对,如果一致则认为验证通过,否则认为验证失败。 下面是一个简单的实现示例(使用Flask框架和Redis数据库): ```python from flask import Flask, request import redis import random app = Flask(__name__) r = redis.Redis(host='localhost', port=6379, db=0) # 生成随机验证码 def generate_verification_code(): return '%06d' % random.randint(0, 999999) # 发送验证码 @app.route('/send_verification_code', methods=['POST']) def send_verification_code(): phone_number = request.form['phone_number'] verification_code = generate_verification_code() r.set(phone_number, verification_code, ex=300) # 将验证码保存到Redis,并设置5分钟过期时间 # TODO: 调用短信服务商API发送验证码到用户手机 return 'Verification code {} has been sent to {}'.format(verification_code, phone_number) # 验证验证码 @app.route('/verify_verification_code', methods=['POST']) def verify_verification_code(): phone_number = request.form['phone_number'] user_verification_code = request.form['verification_code'] verification_code = r.get(phone_number) if verification_code is None: return 'Verification code has expired or does not exist' elif verification_code.decode('utf-8') != user_verification_code: return 'Verification code is incorrect' else: r.delete(phone_number) # 验证通过后删除Redis中的验证码 return 'Verification succeeded' if __name__ == '__main__': app.run() ``` 在实际应用中,还需要考虑以下问题: 1. 如何防止恶意攻击:可以设置每个手机号码一天内只能发送一定数量的验证码,或者使用图形验证码等方式。 2. 如何保护用户隐私:应该使用 HTTPS 加密传输用户手机号码和验证码,同时不应将验证码存储在日志等明文存储的地方。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值