实现手机验证码注册功能

简要说明:在开发软件时涉及登录注册,我们想实现手机验证码注册,这里以调用阿里云短信服务,使用androidstdio  java语言为例

一、申请短信服务

1.进入阿里云平台,选择短信服务

2.申请签名

3.申请模版

注:上述两个过程可以在系统提示下用手机钉钉进行申请,每次审核需要一两个小时;

4.在个人信息那个获取用户密钥,用于访问阿里云API

二、代码实现

1.选择快速学习使用,点击调用API发送,跳转界面

2.选择你需要使用的代码示例,这里我选java

3.根据你申请的签名模版和密钥修改代码参数即可

三、安卓测试

注:安卓中需要在线程里执行此操作

1.需要导入阿里云相关sdk包,如:

implementation(files("libs\\alipay-sdk-java20170324180803.jar"))
implementation(files("libs\\aliyun-java-sdk-core-3.3.1.jar"))
implementation(files("libs\\aliyun-java-sdk-dysmsapi-1.0.0.jar"))
implementation(files("libs\\alipay-sdk-java20170324180803-source.jar"))

2.实现一个发送验证码的类

​
//导入阿里云短信服务SDK
import com.aliyun.auth.credentials.Credential;
import com.aliyun.auth.credentials.provider.StaticCredentialProvider;
import com.aliyun.sdk.service.dysmsapi20170525.models.*;
import com.aliyun.sdk.service.dysmsapi20170525.*;
import com.google.gson.Gson;
import darabonba.core.client.ClientOverrideConfiguration;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
//导入随机数生成函数库
import java.util.Random;

//线程实现短信验证码的请求发送
public class SendSms extends Thread{

    private String code;
    private String phoneNumber;
    public void setPhoneNumber(String phoneNumber,String code)
    {
        this.phoneNumber = phoneNumber;
        this.code = code;
    }

    //线程主体
    public void run() {
        try {
        StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder()
                .accessKeyId("填自己的")//你的密钥
                .accessKeySecret("填自己的")
                .build());

        AsyncClient client = AsyncClient.builder()
                .region("cn-beijing")
                .credentialsProvider(provider)
                .overrideConfiguration(
                        ClientOverrideConfiguration.create()
                                .setEndpointOverride("dysmsapi.aliyuncs.com")
                )
                .build();

        SendSmsRequest sendSmsRequest = SendSmsRequest.builder()
                .signName("填自己的")//短信签名
                .templateCode("填自己的")//短信模版
                .phoneNumbers(this.phoneNumber)//测试手机号
                .templateParam("{\"code\":\""+this.code+"\"}")//验证码
                .build();

        CompletableFuture<SendSmsResponse> response = client.sendSms(sendSmsRequest);
        SendSmsResponse resp = response.get();
        System.out.println(new Gson().toJson(resp));

        client.close();
        } catch (ExecutionException e) {
            throw new RuntimeException(e);
        } catch (InterruptedException e) {
            throw new RuntimeException(e);
        }
    }
}

​

 3.调用此类即可

 四、最后说明 

1.短信中的验证码数字自己设置,可以自己写一个生成指定位的随机数函数,即随机验证码;

2.记得给自己阿里云账户充几块钱,发一次短信要扣一点点费用,当然也有免费的如MobTech实现验证码注册,但是我写安卓的时候,选择的安卓版本太新了,那个官方提供的代码不适用了,又不想改安卓配置了,就改用阿里云了;

3.程序简单逻辑:用户点击注册进入注册页面,用户输入手机号,账号密码,点击获取验证码,调用你实现的类发送随机验证码给用户,用户输入验证码后,验证验证码是否正确,正确的话把用户填写的账号密码信息存入服务器数据库账户表中;

4.对于把账户信息存入服务器数据库可以参考我的另一篇文章:架设阿里云服务器及数据库;

5.不同开发平台,不同语言,阿里云都给出了模版,你需要做的就是导入包修改参数(签名,模版和密钥)即可,整体框架是确定的;

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
手机验证码注册页面的代码通常涉及到前端用户界面和后端验证服务的交互。以下是一个简单的概述,不包括完整的代码实现,但可以帮助你理解其基本结构: 1. **HTML表单**: ```html <form id="registerForm"> <input type="tel" placeholder="手机号" required> <input type="text" pattern="[a-zA-Z0-9]*" placeholder="输入验证码" required> <button type="submit">注册</button> <span id="captchaCode">(发送验证码)</span> </form> ``` 2. **JavaScript (用于发送验证码)**: ```javascript document.getElementById('captchaCode').addEventListener('click', async function() { const phoneNumber = document.querySelector('#registerForm input[type=tel]').value; fetch('https://api.example.com/send-captcha', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ phoneNumber }), }) .then(response => response.text()) .then(captcha => { // 显示验证码 this.textContent = captcha; }); }); ``` 3. **后端处理(PHP, Node.js等)**: ```php // server-side code if ($_SERVER['REQUEST_METHOD'] === 'POST') { $phoneNumber = $_POST['phoneNumber']; $sentCode = generateRandomCode(); // 生成验证码 sendSMS($phoneNumber, $sentCode); // 发送短信 // 储存验证码到数据库或队列 // ... echo $sentCode; } ``` 4. **后端验证**: ```php function register($phoneNumber, $receivedCode) { $storedCode = getStoredCodeForPhoneNumber($phoneNumber); if ($storedCode == $receivedCode) { // 验证码正确,进行注册流程 // ... } else { // 验证码错误,提示用户 } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值