飞滴出行网约车2022-乘客端 校验redis中与输入验证码是否匹配

master
yh 3 years ago
parent 0ebcfa6f94
commit 72c55ede32

@ -31,7 +31,6 @@ public class VerificationController {
String passengerPhone = verificationCodeDTO.getPassengerPhone(); String passengerPhone = verificationCodeDTO.getPassengerPhone();
String verificationCode = verificationCodeDTO.getVerificationCode(); String verificationCode = verificationCodeDTO.getVerificationCode();
System.out.println("手机号 "+passengerPhone+",验证码 "+verificationCode);
return service.checkCode(passengerPhone,verificationCode); return service.checkCode(passengerPhone,verificationCode);
} }

@ -1,10 +1,12 @@
package com.mashibing.apipassenger.service; package com.mashibing.apipassenger.service;
import com.mashibing.apipassenger.remote.ServiceVerificationcodeClient; import com.mashibing.apipassenger.remote.ServiceVerificationcodeClient;
import com.mashibing.internalcommon.constant.CommonStatusEnum;
import com.mashibing.internalcommon.dto.ResponseResult; import com.mashibing.internalcommon.dto.ResponseResult;
import com.mashibing.internalcommon.response.NumberCodeResponse; import com.mashibing.internalcommon.response.NumberCodeResponse;
import com.mashibing.internalcommon.response.TokenResponse; import com.mashibing.internalcommon.response.TokenResponse;
import net.sf.json.JSONObject; import net.sf.json.JSONObject;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -35,7 +37,7 @@ public class VerificationCodeService {
String numberCode = numberCodeResponse.getData().getNumberCode(); String numberCode = numberCodeResponse.getData().getNumberCode();
// 存入redis // 存入redis
String redisKey = prefixKey + passengerPhone; String redisKey = getRdisKey(passengerPhone);
redisTemplate.opsForValue().set(redisKey,numberCode,2, TimeUnit.MINUTES); redisTemplate.opsForValue().set(redisKey,numberCode,2, TimeUnit.MINUTES);
// 返回处理结果 // 返回处理结果
@ -43,7 +45,6 @@ public class VerificationCodeService {
} }
/** /**
* redis * redis
* @param passengerPhone * @param passengerPhone
@ -51,20 +52,26 @@ public class VerificationCodeService {
*/ */
public ResponseResult checkCode(String passengerPhone,String verificationCode){ public ResponseResult checkCode(String passengerPhone,String verificationCode){
System.out.println("passengerPhone = [" + passengerPhone + "], verificationCode = [" + verificationCode + "]");
// 根据 key前缀+号码 从redis取出对应 校验码比较 // 根据 key前缀+号码 从redis取出对应 校验码比较
String redisKey = prefixKey + passengerPhone; String redisKey = getRdisKey(passengerPhone);
String codetmp = redisTemplate.opsForValue().get(redisKey); String codeRedis = redisTemplate.opsForValue().get(redisKey);
// 对比验证码是否相同 // 校验 验证码 是否相同
// if(codetmp.equals(verificationCode)){ if(StringUtils.isBlank(codeRedis) || !StringUtils.equals(codeRedis,verificationCode) ){
// System.out.println("验证码校验正确"); return ResponseResult.fail(CommonStatusEnum.VERIFICATION_CODE_ERROR.getCode(), CommonStatusEnum.VERIFICATION_CODE_ERROR.getValue());
// } }
// 判断 登录手机号用户是否存在,不存在则注册登录
// 返回处理结果 // 颁布 token 令牌
TokenResponse tokenResponse = new TokenResponse(); TokenResponse tokenResponse = new TokenResponse();
tokenResponse.setToken("token value"); tokenResponse.setToken(null);
// 返回处理结果
return ResponseResult.success(tokenResponse); return ResponseResult.success(tokenResponse);
} }
private String getRdisKey(String passengerPhone){
return prefixKey.trim() + passengerPhone.trim();
}
} }

@ -9,7 +9,12 @@ public enum CommonStatusEnum {
/** /**
* 0: * 0:
*/ */
FAIL(0,"fail"); FAIL(0,"fail"),
/**
* 1000-1099
*/
VERIFICATION_CODE_ERROR(1099,"验证码错误!");
private Integer code; private Integer code;

Loading…
Cancel
Save