下面是注册
如果是手机用户注册,需要发送短信验证码
说明:
发送图形验证码是为了拦截发送短信的.但是不拦截"注册帐号"
但是,用户体验很别扭,因为图形验证码很显然是错误的,但是却可以注册成功.
如果点击注册帐号 ,也要校验图形验证码,那就让用户输入两次图形验证码,显然不是很人性化
注意:注册时发送短信每次都需要输入图形验证码,而不是发送3次短信才要输入.
那么如何解决这个问题呢?
把注册拆分为两步:
第一步:发送短信验证码
第二步:设置密码和用户名
这样达到的目的:
(1)可以通过图形验证码拦截发送手机短信;
(2)注册流程只需要输入一次图形验证码
每次校验图形验证码,都刷新后台的图形验证码
- /***
- * 校验图形验证码
- *
- * @param request
- * @param response
- * @param authImage
- * @return : 返回null则表示校验通过
- */
- public WapResponseDto verifyImageCode(HttpServletRequest request,
- HttpServletResponse response,
- String authImage) {
- //检查是否需要校验图形验证码
- WapResponseDto wapResponseDto = null;
- if (isNeedImageCode(request, response)) {//需要图形验证码
- String authCode1 = getAuthCode(request, response);
- if (!VerifyCodeUtils.checkAuthImageCode(authImage, authCode1)) {
- wapResponseDto = new WapResponseDto();
- wapResponseDto.setResult(false);
- wapResponseDto.setErrorFieldName("authImage");
- wapResponseDto.setErrorMessage("图形验证码错误,请重新输入");
- wapResponseDto.setNeedAuthImage(true);
- resetAuthImageCode(request, response);//不管是否校验通过,都会刷新服务器端的图形验证码
- return wapResponseDto;
- }
- }
- resetAuthImageCode(request, response);
- return null;
- }
应用: