admin管理员组

文章数量:1635403

看了主流网站注册都会通过去邮箱点击链接激活实现注册登录等功能,闲暇根据自己理解想写一个简单实现,纯属瞎玩,不足之处,还请广大读者严厉批评指正。

逻辑:1,输入信息点击注册时,会往用户邮箱发送验证链接,区别与大众化的验证码

           2,接受邮件,点击激活链接,再次调用帐号激活接口,并修改激活状态

           3,登录时,判断激活状态

步骤:1,简单的ajax调用接口测试(替代注册表单)

//用户注册接口
			function registTest() {
				$.post('???/regist2', {
					'email': 'xxxxxxx@qq',
					'password1': '123456',
					'password2': '123456'
				}, function(rescnt) {
					console.log(rescnt);
				})

			}

    2,接口实现

/**系统用户注册接口-方式2
	 * @return
	 */
	@RequestMapping(value="/regist2",method=RequestMethod.POST)
	@ResponseBody
	public Object regist2(){
		logBefore(logger, "XXX官网用户注册接口");
		Map<String,Object> map = new HashMap<String,Object>();
		PageData pd = new PageData();
		pd = this.getPageData();
		String code = "100";
		String msg_cn = "系统错误";
		
		try{
				if(Chain8Util.checkParam("regist2", pd)){//第一步:判断请求参数是否完整(调封装的工具类方法-大致逻辑:定常量数组,对应属性长度,用标识来定位)	
					PageData pd2 = register8Service.findByEmail(pd);
					
					if(pd2!=null) {//第二步:判断邮箱是否已注册
						
						if(pd2.getString("status").equals("1")) {
							code = "101";
							msg_cn = "该邮箱已注册并激活";
						}else if(pd2.getString("status").equals("0")){//注册但未激活,重新发送
							
							String token = this.get32UUID();//获取32位uuid作为激活token
							if(Register8EmailUtil.sendJihuo(pd.getString("email"),token )){//第五步:发送激活邮件(调用邮件工具类)
								
								//######   邮件成功发送后,将对应信息存入数据库       ######
								pd.put("password", pd.getString("password1"));
								pd.put("status", "0");
								pd.put("token", token);
								register8Service.edit(pd);//修改数据库数据,重新赋值
								code = "300";
								msg_cn = &

本文标签: 邮箱方式链接项目JavaWeb