【发布时间】:2017-05-15 11:08:08
【问题描述】:
我已经为验证移动设备创建了 Api,我想添加一些逻辑 我可以限制 4 小时后尝试验证 otp 的用户。一世 已经创建了两个 API 第一个发送 otp 给用户和输入 参数为手机号码。 第二个 API 通过比较用户插入的 otp 和第一个 API 期间存储在数据库中的 otp 来验证手机号码
@RestController
@RequestMapping("/api/v1")
public class MobileController2 {
private String To = null;
OtpGenerator otp = new OtpGenerator();
@Autowired
private MobileRepository mobileRepository;
Sms sms = new Sms();
Date date = new Date();
Timestamp timestamp1 = new Timestamp(date.getTime());
Calendar cal = Calendar.getInstance();
SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
@PostMapping(value = "/mobile", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Mobile> createMobile(@RequestBody Mobile mobile) {
int hashcode = otp.RandomOtp();
this.To = mobile.getMob();
String Message = hashcode + " is your Pharmerz verification code ";
if (mobileRepository.findByUserid(mobile.getUserid()) != null) {
Mobile mobileprevious = mobileRepository.findByUserid(mobile.getUserid());
mobileprevious.setMob(mobile.getMob());
mobileprevious.setHASHCODE("" + hashcode);
mobileprevious.setUpdated(mobile.getUpdated());
mobileprevious.setVERIFIED(0);
mobileRepository.save(mobileprevious);
sms.sms_generation(To, Message);
return new ResponseEntity<Mobile>(mobileprevious, HttpStatus.OK);
} else {
mobile.setHASHCODE("" + hashcode);
mobile.setVERIFIED(0);
mobileRepository.save(mobile);
sms.sms_generation(To, Message);
return new ResponseEntity<Mobile>(mobile, HttpStatus.OK);
}
}
@PostMapping(value = "/verifymobile", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Mobile> verifyMobile(@RequestBody Mobile mobile) {
String userid = mobile.getUserid();
String userotp = mobile.getHASHCODE();
Mobile mobileobject = mobileRepository.findByUserid(userid);
if (mobileobject.getHASHCODE().equals(userotp)) {
System.out.println("Matched");
mobileobject.setHASHCODE("");
mobileobject.setVERIFIED(1);
mobileRepository.save(mobileobject);
String Acknowledge = "Thank you for verifying on Pharmerz";
sms.sms_generation(To, Acknowledge);
return new ResponseEntity<Mobile>(mobileobject, HttpStatus.OK);
} else {
System.out.println("Miss matched");
return new ResponseEntity<Mobile>(HttpStatus.BAD_REQUEST);
}
}
}
【问题讨论】:
-
对我的回答有任何反馈吗?我知道你可能希望我;但我很确定:这里不会出现其他任何东西......
-
我已经通过检查区域时间的差异解决了这个问题。
-
我认为:我的回答很有帮助,但并没有真正解决您的问题?
-
不,你的回答真的很受欢迎,它给了我工作的道路
-
很高兴听到这个消息......但我同意,虽然不是每个答案都必须导致 接受 ;-)
标签: java spring-boot time clickatell