Gradle

Gradle 정리 ( Mybatis ) ( API Test, 로그인 인증 )

pjh8838 2024. 12. 16. 11:44
반응형

 

build.gradle

 

 

build.gradle
properties

 

DB 정보, mybatis 의존성 추가

 

hello 테스트

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를 활용하여 상태 저장 로직를 캡슐화하고 재사용하는 함수

 

 

api / index.js

 

api / users.js

 

composables / useUsers.js
컴포넌트

 

 

시큐리티로 프론트엔드 주소 허용한 뒤 데이터 잘 가져오는거 확인.

 


회원가입, 로그인 만들고 유효성검사, 인증 관련 시큐리티 적용 후 토큰값 가져오기

 

로그인 기능 구현

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 우클릭해서 직접 실행  ( 직접 실행이 아니면 프로젝트 실행돌려도 실행 안됌 )

복사해서 DB에 비밀번호 대신 입력

 

 

 

 

 

2) 로그인 기능 구현 

 

DTO 생성

 

 

mapper.xml

 

 

mapper.java 

 

 

 

 

 

service

 

 

 

 

SecurityConfig

BCryptPasswordEncoder를 Bean으로 등록

 

BCryptPasswordEncoder를 Bean으로 등록해야지

PasswordEncoder를 어디서든 주입받아 사용 가능

 

 

 

 

 

serviceImpl

 

 

유효성 검사

의존성 추가

 

 

RequestDTO  ( 검증용 DTO )

 

 

controller

 

 

 

 

 

로그인 기능 테스트

 

다 입력했을 때

 

 

아이디를 안적었을때

 

메세지

 

 


 

JWT

 

JWT는 클라이언트-서버 애플리케이션에서 인증과 권한 관리를 간단하고 효율적으로 처리할 수 있는 표준 방식.

인증이 필요한 API에 사용

누구나 접근 가능한 내용은 JWT 불필요

 

의존성 추가

 

 

jwt 시크릿키 생성 

코드 실행시키면 시크릿키 생성

 

프로퍼티즈 or yml 에 설정

 

 

https://wogud.tistory.com/194  에 JWT 정리 해놓음

 

 

 

728x90
반응형