java web 项目中实现短信验证码登录,注册

今日在写项目时,注册登录功能沿用了邮箱验证,已经几个项目都使用邮箱验证,感觉有点弱,加上进来几乎所有应用都有短信验证码的功能,感觉需要掌握这个方法
  1. 选择第三方服务商
    应该有很多厂商都提供了短信服务,我使用的是榛子云(传送门),其他的话流程应该差不多
    注册,登录
    在这里插入图片描述
    依次点击应用管理,我的应用,可以查看到AppId,和AppSecret,这两个值在后面会用到

  2. 导入jar包或maven坐标
    这一步直接看官方的文档就行(传送门

  3. 实现业务逻辑
    如使用项目的界面
    在这里插入图片描述
    在输入手机号,点击发送验证码后将手机号发送给后台处理

@RequestMapping("/sendSms")
    public @ResponseBody Map<String,String> sendSms(@RequestBody String phoneNumber, HttpServletRequest request) throws Exception {
        Map<String,String> res = new HashMap<String, String>();
        //生成随机验证码4位
        String captcha = RandomStringUtils.random(4,false,true);
        //发送到注册手机
        ZhenziSmsClient client = new ZhenziSmsClient("https://sms_developer.zhenzikj.com", "105254", "60b64026-9aaa-4459-83f3-0aaad82383d3");
        String result = client.send(phoneNumber, "验证码: " + captcha + ",你正在注册喜瑞斯账号,验证码在5分钟内有效");
        System.out.println(result);
        //验证码存入session
        request.getSession().setAttribute("captcha",captcha);
        //返回结果
        res.put("type","success");
        res.put("msg","发送成功");
        return res;
    }

对ZhenziSmsClient的三个参数简单说明

apiUrl:https://sms_developer.zhenzikj.com //个人用户使用这个url就行
appId:105551 //替换为你的appid
appSecret:60b64026-9aaa-4459-83f3-0aafd81383d3 //替换为你的appSercet

具备基本开发经验的话应该理解这段代码的问题不大

点击后
在这里插入图片描述
再点击注册后再将输入的验证码与session域里的验证码比较即可,注意验证成功后将session域里的验证码删除掉
这里需要注意开发者测试的话短信的署名只能是榛子云体验,企业的话可以使用企业的名称
大概三秒左右就能收到短信,速度还可以

  • 既然使用了短信验证注册,再登录时也可以选择短信验证登录和传统的账号密码登录
    在这里插入图片描述
    业务逻辑就不在此过多叙述
  • 5
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
实现发送手机短信验证码和邮箱验证码的注册登录功能,需要以下几个步骤: 1. 获取用户输入的手机号码/邮箱地址,生成随机验证码,将验证码保存到服务器端。 2. 调用第三方短信/邮件接口,将验证码发送给用户。 3. 用户输入收到的验证码,与服务器保存的验证码进行比对。 4. 如果验证码正确,则允许用户进行注册/登录操作;否则提示用户输入错误。 下面以 Java Web 项目为例,介绍如何实现发送手机短信验证码和邮箱验证码的注册登录功能。 1. 发送手机短信验证码 (1)在 JSP 页面上添加输入手机号码的表单,并在表单提交时调用 Servlet 处理用户请求。 (2)在 Servlet 生成随机验证码,并将验证码保存到 session 。 (3)调用短信接口,将验证码发送到用户手机上。 (4)在 JSP 页面上添加输入验证码的表单,并在表单提交时调用 Servlet 进行比对。 (5)如果验证码正确,则允许用户进行注册/登录操作;否则提示用户输入错误。 2. 发送邮箱验证码 (1)在 JSP 页面上添加输入邮箱地址的表单,并在表单提交时调用 Servlet 处理用户请求。 (2)在 Servlet 生成随机验证码,并将验证码保存到 session 。 (3)调用邮件接口,将验证码发送到用户邮箱。 (4)在 JSP 页面上添加输入验证码的表单,并在表单提交时调用 Servlet 进行比对。 (5)如果验证码正确,则允许用户进行注册/登录操作;否则提示用户输入错误。 以上就是使用 Java Web 技术实现发送手机短信验证码和邮箱验证码的注册登录功能的大致步骤,具体实现方式可以根据实际情况进行调整。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值