注册功能之手机验证与邮箱验证

  这两天尝试写了一个注册功能,一种是手机验证码注册,一种是邮箱注册激活。开始写的时候,不知道从哪着手,看了好几篇文章,开始慢慢了解思路,现在就记录下来。

  思路

    注册之手机验证:一个注册页面【手机号框、验证码框、点击获取验证码按钮、点击注册按钮】。点击获取验证码后,后台controller层随机生成一个6位随机数(即验证码),把验证码通过某个短信API接口传到该手机上。手机信息看到验证码,就把它输入前台的验证码框,点注册提交,只要输入的验证码与后台生成的验证码是相同的,就可以提示注册成功了。

    注册之邮箱激活:一个注册页面【用户名框、密码框、邮箱框、点击注册按钮】。一个数据库【用户表:id、username、password、state(激活码状态)、code(激活码)】。一个后台默认生成一个激活码(可以用UUID)和默认一个激活码状态(比如:“0”)。用户在点击注册后,将数据保存在数据库,保存成功后,新建一个线程去执行发送邮件的任务,通过邮箱发送一个带code(激活码)的链接给用户,用户点击链接后,后台接收到链接传过来的激活码,查询数据库是否存在该用户信息,有则执行修改激活码状态(比如“1”),然后提示注册成功。

  代码之手机验证(测试):我是申请聚合数据的短信API接口来用的(参考其开发文档),其他也行吧,这里只测试发验证码给手机

package com.fh.controller.system.SMS; import net.sf.json.JSONObject; import java.util.HashMap; import java.util.Map; import java.util.Random; import static com.fh.util.url.UrlUtil.net; public class SmsVerification { public static void main(String[] args) {
     //这个这样写主要是开发文档里这样规定 String code ="#code#="+getCode();
String result =null; String url ="http://v.juhe.cn/sms/send";//请求接口地址 Map params = new HashMap();//请求参数 params.put("mobile","*******");//接受短信的用户手机号码 params.put("tpl_id","*******");//您申请的短信模板ID,根据实际情况修改 params.put("tpl_value",code);//您设置的模板变量,根据实际情况修改 params.put("key","*****************");//应用APPKEY(应用详细页查询) try { result = net(url, params, "GET"); JSONObject object = JSONObject.fromObject(result); if(object.getInt("error_code")==0){ System.out.println(object.get("result")); }else{ System.out.println(object.get("error_code")+":"+object.get("reason")); } } catch (Exception e) { e.printStackTrace(); } } //获取随机验证码 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(); } }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwfypx.html