간단 후기
- 오래된 강의?인지는 잘 모르겠지만 생각보다 영상의 코드에 오류가 많아서 고치는데 시간이 필요했고, 무료 강의여서 설명이 김영한님 강의처럼 친절하지는 않아서 이해하는데 세 번정도는 돌려본 것 같다. 1~2시간이면 수강할 수 있으니 한 번쯤 들어보면 좋을 것 같다. (JPA, MVC, Security 지식이 있으면 듣기에 용이하다.)
JWT Tutorial
-
- JWT란
- Json 객체를 사용해서 토큰 자체에 정보들을 저장하고 있는 Web Token
- 구조
- Header
- signiture 해싱을 위한 알고리즘 정보
- Payload
- 서버와 클라이언트가 주고받는, 시스템에서 실제로 사용될 정보에 대한 내용
- Signiture
- 토큰의 유효성 검증을 위한 문자열 - 서버가 유효한 토큰인지 감지
- Header
- 장점
- 중앙의 인증서버, 데이터 스토어 의존성 X, 시스템 수평 확장 유리
- Base64 URL Safe Encoding > URL, Cookie, Header 모두 사용 가능
- 단점
- Payload의 정보가 많아지면 네트워크 사용량 증가, 데이터 설계 고려 필요
- 토큰이 클라이언트에 저장, 서버에서 클라이언트의 토큰을 조작할 수 없음
- 오류목록
- User table명이 user면 작동하지 않는다. 예약어 문제 -> my_user, users 등으로 변경
- build.gradle에 jwt관련 implementation을 추가해야한다. 하단 참조
- 깃허브에 안되는 코드가 많다. 강의 코드와 비교하면서 수정해야한다.
- data.sql에서 id를 1,2로 설정하는데 generateValue에서 1로 처음에 만들려고 시도해서 기본키 제약조건에 위배된다. data.sql의 id를 9999,10000과 같이 변경해야한다.
- data.sql
INSERT INTO MY_USER (USER_ID, USERNAME, PASSWORD, NICKNAME, ACTIVATED) VALUES (9999, 'admin', '$2a$08$lDnHPz7eUkSi6ao14Twuau08mzhWrL4kyZGGU5xfiGALO/Vxd5DOi', 'admin', 1); INSERT INTO MY_USER (USER_ID, USERNAME, PASSWORD, NICKNAME, ACTIVATED) VALUES (10000, 'user', '$2a$08$UkVvwpULis18S19S5pZFn.YHPZt3oaqHZnDwqbCW9pft6uFtkXKDC', 'user', 1); INSERT INTO AUTHORITY (AUTHORITY_NAME) values ('ROLE_USER'); INSERT INTO AUTHORITY (AUTHORITY_NAME) values ('ROLE_ADMIN'); INSERT INTO USER_AUTHORITY (USER_ID, AUTHORITY_NAME) values (9999, 'ROLE_USER'); INSERT INTO USER_AUTHORITY (USER_ID, AUTHORITY_NAME) values (9999, 'ROLE_ADMIN'); INSERT INTO USER_AUTHORITY (USER_ID, AUTHORITY_NAME) values (10000, 'ROLE_USER');
- build.gradle
implementation group: 'io.jsonwebtoken', name: 'jjwt-api', version: '0.11.2'
runtimeOnly group: 'io.jsonwebtoken', name: 'jjwt-impl', version: '0.11.2'
runtimeOnly group: 'io.jsonwebtoken', name: 'jjwt-jackson', version: '0.11.2' }
- JWT란
'서버개발' 카테고리의 다른 글
[AWS] Ubuntu22.04 환경 EC2에서 스프링부트 런칭하기 (0) | 2022.07.26 |
---|---|
[AWS] EC2 instance 접속 / RSA키 생성 / 공유그룹 (0) | 2022.07.24 |
HTTP - 김영한님 강의 정리 (0) | 2022.07.06 |
[Spring] API 설계 정리 2편(API 최적화) (0) | 2022.03.13 |
[Spring] API 설계 정리 1편(시작 전 알면 좋은 지식) (0) | 2022.03.12 |