|
@@ -11,6 +11,8 @@ import com.izouma.nineth.config.Constants;
|
|
|
import com.izouma.nineth.domain.SmsRecord;
|
|
import com.izouma.nineth.domain.SmsRecord;
|
|
|
import com.izouma.nineth.exception.BusinessException;
|
|
import com.izouma.nineth.exception.BusinessException;
|
|
|
import com.izouma.nineth.repo.SmsRecordRepo;
|
|
import com.izouma.nineth.repo.SmsRecordRepo;
|
|
|
|
|
+import io.jsonwebtoken.Jwts;
|
|
|
|
|
+import io.jsonwebtoken.SignatureAlgorithm;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.lang3.RandomStringUtils;
|
|
import org.apache.commons.lang3.RandomStringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -21,6 +23,8 @@ import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
import java.time.LocalDateTime;
|
|
import java.time.LocalDateTime;
|
|
|
import java.time.ZoneOffset;
|
|
import java.time.ZoneOffset;
|
|
|
|
|
+import java.util.Date;
|
|
|
|
|
+import java.util.HashMap;
|
|
|
|
|
|
|
|
@Service
|
|
@Service
|
|
|
@Slf4j
|
|
@Slf4j
|
|
@@ -81,7 +85,7 @@ public class AliSmsService implements SmsService {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
- public void verify(String phone, String code) {
|
|
|
|
|
|
|
+ public String verify(String phone, String code) {
|
|
|
SmsRecord smsRecord = smsRecordRepo.findLastByPhoneAndExpiresAtAfterAndExpiredFalse(phone, LocalDateTime.now())
|
|
SmsRecord smsRecord = smsRecordRepo.findLastByPhoneAndExpiresAtAfterAndExpiredFalse(phone, LocalDateTime.now())
|
|
|
.orElseThrow(new BusinessException("验证码错误"));
|
|
.orElseThrow(new BusinessException("验证码错误"));
|
|
|
if (!smsRecord.getCode().equalsIgnoreCase(code)) {
|
|
if (!smsRecord.getCode().equalsIgnoreCase(code)) {
|
|
@@ -89,6 +93,14 @@ public class AliSmsService implements SmsService {
|
|
|
}
|
|
}
|
|
|
smsRecord.setExpired(true);
|
|
smsRecord.setExpired(true);
|
|
|
smsRecordRepo.save(smsRecord);
|
|
smsRecordRepo.save(smsRecord);
|
|
|
|
|
+
|
|
|
|
|
+ return Jwts.builder()
|
|
|
|
|
+ .setClaims(new HashMap<>())
|
|
|
|
|
+ .setSubject(phone)
|
|
|
|
|
+ .setIssuedAt(new Date())
|
|
|
|
|
+ .setExpiration(new Date(new Date().getTime() + 10 * 60 * 1000)) //10min
|
|
|
|
|
+ .signWith(SignatureAlgorithm.HS512, "jwtConfig.getSecret()")
|
|
|
|
|
+ .compact();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|