Commit 248b4d9d authored by chenchao.deng's avatar chenchao.deng

发送验证码 +注册流程优化

parent 2ab6089f
...@@ -116,6 +116,19 @@ public class AccountController { ...@@ -116,6 +116,19 @@ public class AccountController {
return resultDto; return resultDto;
} }
@RequestMapping(path = "/resetAuthCode", method = RequestMethod.POST)
public ResultDto resetAuthCode(@RequestBody MobileDto mobile) {
ResultDto resultDto = new ResultDto();
try {
accountService.sendSmsOtpReset(mobile.getMobile());
resultDto.setStatus(0);
} catch (ClientRequestException e) {
logger.error("fail to send sms", e);
dealClientRequestException(resultDto, e);
}
return resultDto;
}
/** /**
* 用户注册 * 用户注册
*/ */
......
...@@ -112,4 +112,5 @@ public interface AccountService { ...@@ -112,4 +112,5 @@ public interface AccountService {
boolean setAuthorize(String username, boolean isAgree); boolean setAuthorize(String username, boolean isAgree);
void sendSmsOtpReset(String mobile);
} }
...@@ -19,12 +19,29 @@ public class SmsUtils { ...@@ -19,12 +19,29 @@ public class SmsUtils {
private static final int TIME_OUT = 10 * 60; //10minues private static final int TIME_OUT = 10 * 60; //10minues
public enum SmsTemplateCode {
NEWACCOUNT("SMS_472080002"),
RESETACCOUNT("SMS_471765248");
;
String code;
SmsTemplateCode(String code) {
this.code = code;
}
public String getCode() {
return code;
}
}
/** /**
* Generate and send the SMS one time password to user's phone with SMS. * Generate and send the SMS one time password to user's phone with SMS.
* *
* @param phone * @param phone
*/ */
public static String sendSmsOTP(String phone) { public static String sendSmsOTP(String phone, SmsTemplateCode smsTemplateCode) {
String randomCode = createRandom(true, 6); String randomCode = createRandom(true, 6);
DefaultProfile profile = DefaultProfile.getProfile("default", "LTAI5tEdz1DY4A4oYUawUuNH", "8KWmYgO0QIicZpyulhEwUhZqStrTwe"); DefaultProfile profile = DefaultProfile.getProfile("default", "LTAI5tEdz1DY4A4oYUawUuNH", "8KWmYgO0QIicZpyulhEwUhZqStrTwe");
IAcsClient client = new DefaultAcsClient(profile); IAcsClient client = new DefaultAcsClient(profile);
...@@ -35,9 +52,9 @@ public class SmsUtils { ...@@ -35,9 +52,9 @@ public class SmsUtils {
request.setDomain("dysmsapi.aliyuncs.com"); request.setDomain("dysmsapi.aliyuncs.com");
request.setVersion("2017-05-25"); request.setVersion("2017-05-25");
request.setAction("SendSms"); request.setAction("SendSms");
request.putQueryParameter("SignName", "深圳北鲲云计算有限公司"); request.putQueryParameter("SignName", "无界超级浏览器");
request.putQueryParameter("PhoneNumbers", phone); request.putQueryParameter("PhoneNumbers", phone);
request.putQueryParameter("TemplateCode", "SMS_471410139"); request.putQueryParameter("TemplateCode", smsTemplateCode.getCode());
request.putQueryParameter("TemplateParam", "{\"code\":\"" + randomCode + "\"}"); request.putQueryParameter("TemplateParam", "{\"code\":\"" + randomCode + "\"}");
try { try {
CommonResponse response = client.getCommonResponse(request); CommonResponse response = client.getCommonResponse(request);
......
...@@ -9,6 +9,7 @@ import com.edgec.browserbackend.account.service.AccountService; ...@@ -9,6 +9,7 @@ import com.edgec.browserbackend.account.service.AccountService;
import com.edgec.browserbackend.account.service.EmailService; import com.edgec.browserbackend.account.service.EmailService;
import com.edgec.browserbackend.account.service.PaymentService; import com.edgec.browserbackend.account.service.PaymentService;
import com.edgec.browserbackend.account.service.SmsUtils; import com.edgec.browserbackend.account.service.SmsUtils;
import com.edgec.browserbackend.account.service.SmsUtils.SmsTemplateCode;
import com.edgec.browserbackend.account.utils.AccountServicePool; import com.edgec.browserbackend.account.utils.AccountServicePool;
import com.edgec.browserbackend.auth.exception.AuthErrorCode; import com.edgec.browserbackend.auth.exception.AuthErrorCode;
import com.edgec.browserbackend.auth.service.UserService; import com.edgec.browserbackend.auth.service.UserService;
...@@ -427,9 +428,7 @@ public class AccountServiceImpl implements AccountService { ...@@ -427,9 +428,7 @@ public class AccountServiceImpl implements AccountService {
// 1. 校验注册用户是否已存在 // 1. 校验注册用户是否已存在
Account existing1 = accountRepository.findByName(user.getUsername()).orElse(null); Account existing1 = accountRepository.findByName(user.getUsername()).orElse(null);
Account existing2 = accountRepository.findOneByPhoneNumber(user.getUsername()); Account existing2 = accountRepository.findOneByPhoneNumber(user.getUsername());
Account existing3 = accountRepository.findOneByPhoneNumber(user.getPhone()); if (existing1 != null || existing2 != null) {
Account existing4 = accountRepository.findByName(user.getPhone()).orElse(null);
if (existing1 != null || existing2 != null || existing3 != null || existing4 != null) {
throw new ClientRequestException(AccountErrorCode.NAMEEXIST, "account already exists: " + user.getUsername()); throw new ClientRequestException(AccountErrorCode.NAMEEXIST, "account already exists: " + user.getUsername());
} }
...@@ -913,7 +912,7 @@ public class AccountServiceImpl implements AccountService { ...@@ -913,7 +912,7 @@ public class AccountServiceImpl implements AccountService {
@Override @Override
public void sendSmsOtp(String phone) { public void sendSmsOtp(String phone) {
String code = com.edgec.browserbackend.account.service.SmsUtils.sendSmsOTP(phone); String code = SmsUtils.sendSmsOTP(phone, SmsTemplateCode.NEWACCOUNT);
Otp otp = new Otp(); Otp otp = new Otp();
otp.setPhone(phone); otp.setPhone(phone);
otp.setOtp(code); otp.setOtp(code);
...@@ -1165,6 +1164,16 @@ public class AccountServiceImpl implements AccountService { ...@@ -1165,6 +1164,16 @@ public class AccountServiceImpl implements AccountService {
} }
} }
@Override
public void sendSmsOtpReset(String phone) {
String code = com.edgec.browserbackend.account.service.SmsUtils.sendSmsOTP(phone, SmsTemplateCode.RESETACCOUNT);
Otp otp = new Otp();
otp.setPhone(phone);
otp.setOtp(code);
otp.setCreatedAt(Instant.now().toEpochMilli());
otpRepository.save(otp);
}
private void notifyCustomerRegister(Account contactUs) { private void notifyCustomerRegister(Account contactUs) {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
sb.append("Name: " + contactUs.getName() + "<br/>"); sb.append("Name: " + contactUs.getName() + "<br/>");
......
...@@ -33,7 +33,7 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter { ...@@ -33,7 +33,7 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override @Override
public void configure(WebSecurity web) throws Exception { public void configure(WebSecurity web) throws Exception {
web.ignoring() web.ignoring()
.antMatchers("/user/authCode", "/user/signUp", .antMatchers("/user/authCode", "/user/signUp", "/user/resetAuthCode",
"/user/forgot**", "/0xadministrator/getconfig**"); "/user/forgot**", "/0xadministrator/getconfig**");
} }
......
...@@ -26,8 +26,8 @@ public class SmsUtils { ...@@ -26,8 +26,8 @@ public class SmsUtils {
CLOUDAM_ARREARS("SMS_174805285"), CLOUDAM_ARREARS("SMS_174805285"),
AUTHCODE("SMS_185841618"), AUTHCODE("SMS_185841618"),
IPWILLEXPIRE_EXPIRE("SMS_185821567"), IPWILLEXPIRE_EXPIRE("SMS_472140001"),
IPEXPIRED("SMS_185841667"), IPEXPIRED("SMS_472140001"),
NEWACCOUNT("SMS_187750800"); NEWACCOUNT("SMS_187750800");
; ;
...@@ -99,7 +99,7 @@ public class SmsUtils { ...@@ -99,7 +99,7 @@ public class SmsUtils {
request.setVersion("2017-05-25"); request.setVersion("2017-05-25");
request.setAction("SendSms"); request.setAction("SendSms");
request.putQueryParameter("PhoneNumbers", phoneNum); request.putQueryParameter("PhoneNumbers", phoneNum);
request.putQueryParameter("SignName", "防关联浏览器"); request.putQueryParameter("SignName", "无界超级浏览器");
request.putQueryParameter("TemplateCode", smsTemplateCode.getCode()); request.putQueryParameter("TemplateCode", smsTemplateCode.getCode());
request.putQueryParameter("TemplateParam", param.toJSONString()); request.putQueryParameter("TemplateParam", param.toJSONString());
try { try {
...@@ -122,9 +122,9 @@ public class SmsUtils { ...@@ -122,9 +122,9 @@ public class SmsUtils {
request.setVersion("2017-05-25"); request.setVersion("2017-05-25");
request.setAction("SendSms"); request.setAction("SendSms");
request.putQueryParameter("PhoneNumbers", phoneNum); request.putQueryParameter("PhoneNumbers", phoneNum);
request.putQueryParameter("SignName", "防关联浏览器"); request.putQueryParameter("SignName", "无界超级浏览器");
request.putQueryParameter("TemplateCode", smsTemplateCode.getCode()); request.putQueryParameter("TemplateCode", smsTemplateCode.getCode());
request.putQueryParameter("TemplateParam", param.toJSONString()); //request.putQueryParameter("TemplateParam", param.toJSONString());
try { try {
CommonResponse response = iAcsClient.getCommonResponse(request); CommonResponse response = iAcsClient.getCommonResponse(request);
if (response.getHttpStatus() == 200 && response.getData().contains("OK")) { if (response.getHttpStatus() == 200 && response.getData().contains("OK")) {
......
...@@ -53,6 +53,7 @@ class BrowserBackendApplicationTests { ...@@ -53,6 +53,7 @@ class BrowserBackendApplicationTests {
@Test @Test
void test3() throws Exception { void test3() throws Exception {
//SmsUtils.sendSmsOTP("18711016574");
JSONObject param = new JSONObject(); JSONObject param = new JSONObject();
param.put("day", "7"); param.put("day", "7");
param.put("amount", "5"); param.put("amount", "5");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment