public void setDataExpire(String key, String value, long duration) {
// duration 동안 (key, value)를 저장한다.
ValueOperations<String, String> valueOperations = redisTemplate.opsForValue();
Duration expireDuration = Duration.ofSeconds(duration);
// 인증 코드 값을 value에 저장
valueOperations.set(key, value, expireDuration);
}```java
public void save(String key, String value, long duration) {
// duration 동안 (key, value)를 저장한다.
ValueOperations<String, String> valueOperations = redisTemplate.opsForValue();
Duration expireDuration = Duration.ofSeconds(duration);
// 인증 코드 값을 value에 저장
valueOperations.set(key, value, expireDuration);
}
```public String getEmail(String key) { // key를 통해 value(데이터)를 얻는다.
ValueOperations<String, String> valueOperations = redisTemplate.opsForValue();
log.info("key : " + key);
return valueOperations.get(key);
}@Override
public boolean verificationCodeCheck(String email, String verificationCode) {
String codeFindByEmail = redisUtil.getData(email);
if (codeFindByEmail == null) {
return false;
}
redisUtil.save("success", email, 60 * 50L);
return redisUtil.getData(email).equals(verificationCode);
}// key에 맞는 value를 줌
String verifiedEmail = redisUtil.getEmail("success");
if (verifiedEmail == null) {
throw new IllegalArgumentException("인증한 Email이 없습니다");
}
if (!verifiedEmail.equals(email)) {
throw new IllegalArgumentException("인증되지 않은 Email 입니다.");
}참고
@ConfigurationProperties(prefix = "spring.redis") 쓰려고 했는데 알람이 뜸(오류는 아닌듯 하지만 작업하다 보면 문제가 생길 것 같은!)
dependencies {
annotationProcessor "org.springframework.boot:spring-boot-configuration-processor"
}블랙리스트라고 하지만 실제로는 그냥 key : value -> 토큰 값 : logout이라는 로그아웃을 확인할 수 있게 등록
JwtAuthenticationFilter
JwtAuthorizationFilter
application.yml = application.properties
팀장님 설명
@Component 뜻
