1. 개요도

2. FCM 토큰 관리
@PostMapping("/cm-token/confirm")
public ResponseEntity<?> checkFCMToken(@LoginUser User user,
@RequestParam String fCMToken) {
if (user == null) {
log.info("유저가 일치하지 않습니다");
return new ResponseEntity<>("User Data incorrect", HttpStatus.BAD_REQUEST);
}
if (fCMToken == null) {
log.info("fCMToken 값이 비어있습니다");
return new ResponseEntity<>("FCMToken incorrect", HttpStatus.BAD_REQUEST);
}
if (user.getRole() == UserRoleType.USER) {
Boolean confirm = fcmTokenService.confirmToken(user, fCMToken);
if (confirm)
return new ResponseEntity<>("OK", HttpStatus.OK);
}
if (user.getRole() == UserRoleType.ADMIN) {
Long id = fcmTokenService.confirmAdminFCMToken(user, fCMToken);
if (id == null) {
log.info("admin fcm token verify failed");
return new ResponseEntity<>("FAIL", HttpStatus.BAD_REQUEST);
}
return new ResponseEntity<>("OK", HttpStatus.OK);
}
log.info("fcm token check error");
return new ResponseEntity<>("FAIL", HttpStatus.BAD_REQUEST);
}
- 유저 = Redis에 FCM 토큰을 보관, 30일 간격으로 만기
- 어드민 = RDB에 FCM 토큰을 보관 ( 메모리상에 저장시 서버 다운시 날아갈 위험 존재)



- secure_storage에 FCM_TOKEN 도 추가적으로 보관