JAVA实现注册登陆的短信验证

一、找到一个短信API服务数据接口

  使用短信api接口服务我这里是使用一个第三方的接口服务(步骤需要不是打广告)。

  1、获取短信接口的Appkey程序钥匙。

    https://www.juhe.cn/

    注册账号>找到个人中心

请先复制好你的接口密码,到后面我们要用到

提交审核-往下滑找到你刚刚提交的短信:

请复制好你的短信模板ID

二、代码实现

  好的,我们拿到了短信的模板编号、短信接口密码。现在我们就开始打代码了

  获取短信类:

package com.yangwansheng.myproject.common;


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import java.util.Random;

public class QcloudSms {
    //提取手机号码生成的验证码 phoneNumber手机号码,code随机验证码
    public static boolean sendCode(String phoneNumber , String code )throws Exception{
        String code_Str = URLEncoder.encode("#code#="+code, "utf-8");
        System.out.println(code_Str);
        //准备URL对象,将接口包装在此对象中
        URL url = new URL("http://v.juhe.cn/sms/send?mobile="+phoneNumber+
                "&tpl_id=短信模板id编号&tpl_value="+code_Str+"&key=你的AppKey密钥");
        //打开对象
        URLConnection connection = url.openConnection();
        //向服务器发送连接请求
        connection.connect();
        //获得服务器响应的数据
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(connection.getInputStream(),"utf-8"));
        StringBuffer buffer = new StringBuffer();
        String lineData = null;
        while((lineData=bufferedReader.readLine())!=null) {
            buffer.append(lineData);
        }
        System.out.println(buffer);
        //关闭连接对象
        bufferedReader.close();
        if(buffer.toString().indexOf("\"erroe_code\":0")>=0) {
            return true;//当调用改方法时返回true短信就发送成功了
        }
        return false;
    }

    //获取随机验证码
    public static String getCode(){
        //开始生成随机数字 -- 验证码
        StringBuffer buffer = new StringBuffer();
        Random random = new Random(); //随机数字
        for(int i =0;i<6 ;i++) {
            //生成一个6位数的随机数
            buffer.append(random.nextInt(10));//范围0到10,不包括10 ;0-9
        }
        return buffer.toString();
    }

}

 

 获取短信类写好了,就到了使用它了

String code =  QcloudSms.getCode();//获取随机验证码
try {
    //调用接口方法,发送短信到手机 --phone接收短信的手机号码
      QcloudSms.sendCode(phone,code);
} catch (Exception e) {
      e.printStackTrace();
}

 

之后如何验证客户输入的验证码就不写了。

代码打完了,只要等待我们的短信模板通过就可以使用了,然后就开始测试吧

测试结果

由于写的比较着急,所以很多细节没有优化,请勿见怪。

转载于:https://www.cnblogs.com/yangWanSheng/p/9665616.html

Java登录验证的实现可以参考以下步骤: 1. 创建一个获取验证码的接口,该接口负责给手机号发送验证码并设置验证码缓存,设置过期时间。可以使用短信服务提供商的API发送验证码短信,并将验证码存储在缓存中。\[1\] 2. 创建一个登录接口,该接口接收用户提交的手机号和验证码,并读取缓存中的验证码进行匹配验证。如果验证成功,则生成一个token,并将token返回给客户端。客户端在登录成功后的请求中需要携带该token进行业务请求。\[1\] 3. 在后端代码中,可以使用Java的框架(如Spring MVC)来处理登录验证逻辑。在登录接口中,可以通过调用缓存的API来获取和验证验证码。如果验证成功,可以使用JWT(JSON Web Token)来生成token,并将token返回给客户端。\[1\] 4. 在客户端代码中,可以使用JavaScript来处理登录页面的逻辑。可以通过AJAX请求将用户提交的手机号和验证码发送到后端登录接口进行验证。如果验证成功,可以将返回的token保存在客户端,以便在后续的业务请求中携带。\[2\] 5. 关于token的过期时间,可以根据客户端的类型来定义。例如,对于移动端(如app),可以设置较长的过期时间(通常一个星期)。对于web端,可以设置较短的过期时间(以小时为单位)。可以根据请求头信息来判断客户端的类型,并设置相应的过期时间。\[3\] 总结起来,Java登录验证的实现包括发送验证码、验证验证码、生成token和设置过期时间等步骤。可以使用缓存来存储验证码,并使用JWT来生成和验证token。根据客户端的类型来设置不同的过期时间。 #### 引用[.reference_title] - *1* *3* [【209期】图解用户登录验证业务流程(面试应答推荐)](https://blog.csdn.net/afreon/article/details/122138616)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [java 如何实现登陆注册的验证码功能](https://blog.csdn.net/niceLiuSir/article/details/78473803)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值