-
users-controller
POST Request Return /api/v1/users/sign-up email, password, userName, gender, birth 회원가입 결과 /api/v1/users/reissue accessToken, refreshToken /api/v1/users/logout accessToken, refreshToken 로그아웃 결과 /api/v1/users/login email, password 로그인 결과 GET Request Return /api/v1/users/userTest 로그 기록 결과 /api/v1/users/authority 권한 부여 결과 /api/v1/users/adminTest 로그 기록 결과 -
save-controller
POST Request Return /api/save/papers articleId
title_ko
title_en
author_name
author_id
institution
journal_name
publisher
pub_year
major
abstract_ko
abstract_en
category논문 저장 결과 GET Request Return /api/save/papers email articleId
title_ko
title_en
author_name
author_id
institution
journal_name
publisher
pub_year
major
abstract_ko
abstract_en
categoryDELETE Request Return /api/save/papers/{article_id} articleId 저장된 논문의 삭제 결과 -
elastic-search-controller
GET Request Return /search/_search/{keyword} keyword articleId
journalName
journalPublisher
pubYear
titleKor
titleEng
authors
abstractKor
abstractEng
citations
keyword -
auth-controller
GET Request Return /check-email-authentication email 이메일 인증 결과 /check-authentication email 현재 사용자의 인증 결과 -
check-email-controller
GET Request Return /api/v1/users/checkEmail email 중복 이메일에 대한 검증 결과
- DB 설계
- 공동 작업 (이승윤, 장수현)
- 이승윤
- 기능
- ElasticSearch 검색엔진 연동
- Nori Tokenizer를 활용한 한국어 검색 기능
- EC2 연동 (프로젝트 기간 중)
- Docker 연동 (프로젝트 종료 후)
- CI/CD 구성
- AWS EC2 배포
- ElasticSearch 검색엔진 연동
- 기능
- 장수현
- 기능
- 사용자 기능
- 회원 가입 유효성 및 중복성 검사
- 로그인 유효성 및 중복성 검사
- JWT를 이용한 사용자 검증 토큰 발행
- Redis를 이용한 토큰 저장 및 재발급
- History 페이지
- 사용자가 열어 본 논문 기록 저장
- Save 페이지
- 사용자가 저장한 논문 저장
- 사용자 기능
- 기능
-
사용자 기능
SpringSecurity+JWT+Redis를 활용한 토큰 기반 사용자 기능
개념
-
토큰 기반 인증 시스템
-
웹 보안은 요청하는 사용자를 식별하는 인증(Authenticate)와 인증된 사용자가 보호된 리소스에 접근할 권한이 있는지 확인하는 인가(Authorize)가 바탕이 된다.
-
Token기반 인증 시스템은 인증을 받은 사용자에게 토큰을 전달하고, 사용자가 서버에 요청할 때 Header에 발급 받은 토큰을 함께 보내어 유효성을 검사한다.
* stateless구조를 갖는다. -
따라서 클라이언트가 요청했을 때 클라이언트의 Header에 담긴 Toekn만으로 인증 정보를 확인할 수 있기에 세션 관리를 요하지 않아 자원을 아낄 수 있다.
-
JWT란 (Json Web Token)
-
JSON 객체를 사용해서 토큰 자체에 정보를 저장하는 Web Token이다.
-
JWT는 Header, Payload, Signature 3 개의 부분으로 구성되어 있으며 쿠키나 세션을 이용한 인증보다 안전하고 효율적이며, 웹 응용 프로그램, 모바일 애플리케이션, 마이크로서비스 및 다양한 분산 시스템에서 인증 및 권한 부여를 위한 강력한 도구로 사용되며, 사용자 관리 및 보안을 향상시키는 데 기여한다.
-
-
-
