DB 정보, mybatis 의존성 추가
CommandLineRunner implements
import 단축키 - 컨트롤 + 쉬프트 + O
패키지, 파일 생성
리소스 밑에 mapper.xml 생성
java 밑에
컨트롤러, 매퍼, 모델, 서비스 패키지 생성
컨트롤러(클래스)
매퍼(인터페이스)
서비스(인터페이스)
서비스임플(클래스)
DTO(모델, 클래스)
DTO
타입, 컬럼명 적고
우클릭 - 소스 - superclass, using field, getter setter, toString() 생성
Mapper
Service
ServiceImpl 만들때 implements에 service 추가
Mapper 의존성, 생성자 주입
우클릭 - 소스 - using field
Controller
서비스 의존성, 생성자 주입
프론트로 연결할 때는 시큐리티를 적용해줘야 한다.
시큐리티를 적용안하더라도 cors 설정은 해줘야함
Talend API tester에서 DB 값 잘 가져오는지 테스트
url 형식
localhost : ( server.port ) / context-path / 맵핑값
Vue3 Rest API
src - api 폴더 생성
index.js => api 설정파일
users.js => 사용자 api 함수 호출
src - composables 폴더 생성
컴포저블은 Vue 컴포지션 API를 활용하여 상태 저장 로직를 캡슐화하고 재사용하는 함수
시큐리티로 프론트엔드 주소 허용한 뒤 데이터 잘 가져오는거 확인.
회원가입, 로그인 만들고 유효성검사, 인증 관련 시큐리티 적용 후 토큰값 가져오기
로그인 기능 구현
1. (프론트) 로그인 페이지 생성
2. 백엔드 로그인 기능, 서버 API 구현
3. (프론트) 로그인 요청 로직 추가
4. 백엔드랑 연동
5. (프론트) 토큰 저장 및 인증 유지
6. (프론트) 인증 헤더 추가
7. (프론트) 로그아웃 기능 구현
8. 추가 작업 ( https, cors, 리프레시토큰 등 )
2번 서버 API 구현 시
JWT or 세션 기반 인증 방식 이렇게 두가지가 있는데
JWT 쓰면됌
1. 로그인 페이지
2. 백엔드 개발 ( API 연동 전 )
1 ) DB에 관리자 계정 생성 ( 비밀번호 암호화 )
util 폴더 생성
PasswordHasher.java 생성
개발단계에서 관리자 계정 생성 시에만 사용!!
PasswordHasher 우클릭해서 직접 실행 ( 직접 실행이 아니면 프로젝트 실행돌려도 실행 안됌 )
2) 로그인 기능 구현
DTO 생성
mapper.xml
mapper.java
service
SecurityConfig
BCryptPasswordEncoder를 Bean으로 등록해야지
PasswordEncoder를 어디서든 주입받아 사용 가능
serviceImpl
유효성 검사
RequestDTO ( 검증용 DTO )
controller
로그인 기능 테스트
JWT
JWT는 클라이언트-서버 애플리케이션에서 인증과 권한 관리를 간단하고 효율적으로 처리할 수 있는 표준 방식.
인증이 필요한 API에 사용
누구나 접근 가능한 내용은 JWT 불필요
jwt 시크릿키 생성
https://wogud.tistory.com/194 에 JWT 정리 해놓음