기존에는 AWS RDS를 사용하여 DB를 사용하였지만, local로 변경하며 새로 설정해주어야했음.
spring:
datasource:
url: jdbc:mysql://localhost:3306/{DB이름}?serverTimezone=Asia/Seoul
username: ## id
password: ## pasword
driver-class-name: com.mysql.cj.jdbc.Driver
jpa:
properties:
hibernate:
# 만들어진 sql 보여주기
# show_sql: true
# sql 가독성 좋게 보여줌
format_sql: true
jwt:
secret_key: # jwt secret_key
expiration: # 만료시간
issuer: # issuer
@PostMapping("/user/signin")
public ResponseEntity<String> signin(@Valid @RequestBody SigninDTO signinDTO) {
TokenDTO tokenDTO = userService.signin(signinDTO.getUid(), signinDTO.getPassword());
if (tokenDTO != null) {
// JWT Access 토큰을 헤더에 담아서 반환
HttpHeaders headers = new HttpHeaders();
headers.set("Authorization", "Bearer " + tokenDTO.getAccess());
return ResponseEntity.ok().headers(headers).body(tokenDTO.getNickname());
}
// 로그인 실패
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(null); // 상태코드: 400
}
노트북을 바꾸면서 프로젝트가 몽땅 날아갔다...
GitHub에는 .env, application.yml과 같은 설정파일은 제외하고 업로드하였더라..
- 물론 Password, ID같이 중요한 데이터들은 빈값 or 임의의 값으로 설정하고 반환하였다
return UserDTO.builder()
.uid(user.getUid())
.password("IsNotValue")
.email(user.getEmail())
.name(user.getName())
.nickname(user.getNickname())
.introduce(user.getIntroduce())
.build();
DB 외래키 제약 조건 위반 오류였음
alter table user
drop foreign key user_team__fk;
alter table user
add constraint user_team__fk
foreign key (team_id) references team (id)
on delete set null;
제약조건 변경!
(팀을 삭제하면 user의 외래키는 null로 설정)