发送短信验证码和邮箱验证码—Java实现


短信验证码web

  短信验证码都是调用一些接口来进行短信的发送,短信验证码在登陆、注册等操做中使用的最普遍,本文这一节演示如何使用Java制做一个简单的短信验证码登陆。服务器

  我这里演示使用的是聚合数据的短信接口(并不是广告),由于聚合数据的接口调用比较方便和简单,因此首先得先去聚合数据里申请一个短信接口API:jsp

1.png

2.png


申请时会须要你进行实名认证,若是你不想认证的话跳过认证也是能够的。ide


申请完短信API进入如下界面后点击“模板”:测试

3.png


  须要先申请一个短信模板,根据本身的需求定义这个模板内容(定义前先阅读此页面下方的模板规则说明):spa

4.png


提交审核后,在此页面的下方能够看到模板列表和模板的审核状态:接口

5.png


而后点击“个人数据”,再点击短信API服务中的“接口”:队列

6.png


接口的调用说明都在这个页面里,须要按照这里的规则去调用这个API:it

7.png



  等短信模板申请下来后就可使用这个API了,如下演示如何使用Java来调用这个API,制做一个简单的短信验证码登陆:验证码

首先是页面的index.jsp代码:

8.png


用于调用短信接口的类:

9.png


处理发送验证码请求的Servlet:

10.png

11.png


最后是处理登陆业务的Servlet:

12.png

13.png

14.png


运行结果:

15.png


收到的验证码:

16.png


输入验证码进行登陆:

17.png


控制台打印内容:

18.png



邮箱验证码

  通常能使用邮箱注册的帐户,在进行登陆、注册或忘记密码等操做时,都能使用邮箱进行验证,因此邮箱验证码也使用得比较普遍,不过相对于短信验证码来讲,邮箱验证码使用的少一些,由于如今是我的都有手机号码,可是不必定会有邮箱帐号。

  使用邮箱来发送验证码,不须要像短信验证码那样调用短信服务API来发送验证码,可是须要有一个可以发送邮件的邮箱服务器或者使用第三方的邮箱,例如16三、12六、qq邮箱等。

  无论是邮箱服务器仍是第三方的邮箱须要开启POP三、SMTP、IMAP服务,由于开启了这些服务后才能被第三方调用这个邮箱进行发送邮件。由于本身搭建邮箱服务器比较麻烦,因此我这里使用163的邮箱做为演示。


1. 首先得去邮箱里开启服务,登陆后点击设置能够看到这些服务的选项:

19.png


2. 设置服务,第一次设置的话,会须要短信验证,而后还会要求你设置一个密码:

20.png

21.png


3. 进行短信验证:

22.png


4. 设置密码:

23.png


5. 完成:

24.png

这个设置的密码也就是受权码要记住,发送邮件的时候须要用到这个受权码。


  而后咱们来使用Java编写一个发送邮件的类,可是写这个代码以前你得先得到下图中的jar包,须要使用这些第三方的jar包来实现邮件的发送:

25.png


得到jar包后,把这些jar包都导入到web工程下的lib目录中:

26.png


  有了这些jar包后,就能够开始编写代码了,咱们先写一个简单的类来测试一下可否成功发送邮件,代码示例:

27.png


运行结果:

28.png

如图,邮件能够正常的发送,而且收件人也能收到。



关于邮件的验证码的问题:

有时候邮件会发送的比较慢,甚至会发送不出去。因此用户在这种状况下就须要进行等待,最经典的就是那个圆圈的图标会一直在转圈,为了解决这种等待的问题,能够将验证码的发送请求存放到一个队列集合中,让它在后台进行发送,这样的话用户发送验证码时就不至于卡在当前页面里,示意图:

29.png

相关文章
相关标签/搜索