{"id":21017455,"url":"https://github.com/likelasttime/auth-service","last_synced_at":"2026-04-27T19:31:45.236Z","repository":{"id":65240813,"uuid":"574923279","full_name":"likelasttime/Auth-Service","owner":"likelasttime","description":"JWT 인증 서비스","archived":false,"fork":false,"pushed_at":"2023-05-22T15:56:18.000Z","size":3964,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-20T12:25:16.553Z","etag":null,"topics":["java","jwt","msa","spring-boot","spring-security"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/likelasttime.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-12-06T11:23:41.000Z","updated_at":"2024-01-23T07:21:11.000Z","dependencies_parsed_at":"2025-01-20T12:34:59.303Z","dependency_job_id":null,"html_url":"https://github.com/likelasttime/Auth-Service","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/likelasttime%2FAuth-Service","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/likelasttime%2FAuth-Service/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/likelasttime%2FAuth-Service/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/likelasttime%2FAuth-Service/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/likelasttime","download_url":"https://codeload.github.com/likelasttime/Auth-Service/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243447642,"owners_count":20292452,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java","jwt","msa","spring-boot","spring-security"],"created_at":"2024-11-19T10:19:30.790Z","updated_at":"2025-12-25T19:56:14.897Z","avatar_url":"https://github.com/likelasttime.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# [완료] Auth-Service \n[![SonarCloud](https://sonarcloud.io/images/project_badges/sonarcloud-white.svg)](https://sonarcloud.io/project/overview?id=likelasttime_Auth-Service)   \nJWT를 이용한 인증 서비스 개인 프로젝트  \nMSA 아키텍처(📁auth-server 📁eureka-server 📁front-server 📁gateway 📁user-server)  \nMonolithic 아키텍처(📁 src)\n\n\u003cbr\u003e\n\n🟥 MSA 인증 서버 실행 영상  \nhttps://youtu.be/ARxAACi77Lw  \n\n📘기록 일지  \nhttps://desert-echidna-283.notion.site/Auth-Service-b3dd5d28044541e6a8e520f7d1f1abaa  \n\n\u003cbr\u003e\n\n### 기술스택\n🟧 \u003cb\u003eBackend\u003c/b\u003e  \n- Java 11  \n- Spring Boot 2.6.14  \n- MySQL  \n- Spring Data JPA  \n- Redis  \n- Junit5  \n- H2 \n- Spring Cloud 2021.0.0  \n  - Eureka\n  - Spring Cloud Gateway\n\n\u003cbr\u003e\n\n🟨 \u003cb\u003eFrontend\u003c/b\u003e  \n- HTML  \n- CSS  \n- JavaScript  \n- JQuery  \n- BootStrap  \n- Thymeleaf \n\n\u003cbr\u003e\n\n## MSA 아키텍처  \n![msa 아키텍처](https://user-images.githubusercontent.com/46569105/209476749-5b506a88-0ce1-40f4-8c62-50e9cf0136b3.jpg)\n\n*eureka-server* : 인스턴스들의 정보를 가지고 있는 서버  \n*gateway* : 라우팅, 토큰 검증  \n*user-server* : 사용자와 관련된 다양한 서비스(회원가입, 유저 관리 등)  \n*auth-server* : 로그인 및 토큰 생성  \n*front-server* : view  \n\n\n\u003cbr\u003e\n\n## ERD\n![erd](https://user-images.githubusercontent.com/46569105/207863286-00389f74-14f6-4091-a6e7-da4b1d03a877.png)\n\n\u003cbr\u003e\n\n## 기능\n- 가입, 로그인\n  - 로그인에 성공하면 JWT 발급\n    - Access Token, Refresh Token은 Cookie에 저장\n- 유저 관리 페이지\n  - 관리자 권한을 가진 사람만 인가\n  - NOT_PERMITTED가 아닌 회원들만 조회(USER, ADMIN, MANAGER)\n- 인증 서버 API\n  - 세션 대신에 JWT로 판단하도록 CustomFilter 생성\n    - CustomFilter는 UsernamePasswordAuthenticationFilter 앞단에 위치\n- RDBMS 사용(MySQL)\n- Password Encryption\n  - 랜덤 값 salt를 추가해서 해쉬 함수 생성\n  - salt는 회원 테이블과 1:1 매핑으로 SALT 테이블에 저장\n  - BCrypt 사용\n- 비밀번호 찾기\n  - 새로운 비밀번호를 설정할 수 있는 링크를 담아 이메일을 전송\n- 캐시\n  - Refresh Token 저장\n  - 이메일 인증, 비밀번호 찾기 메일 URL 파라미터 key를 저장\n    - 해당 URL은 임의의 시간 동안만 유효함\n- 이메일 인증\n  - 로그인 시 NOT_PERMITTED 유저라면 이메일 인증 페이지로 이동\n\n\u003cbr\u003e\n\n## API 명세  \n|Method|URI|설명|\n|---|---|----|\n|POST|/auth-server/auth/login|로그인|\n|POST|/user-server/auth/signup |회원 가입|\n|POST|/user-server/auth/verify|인증 메일 전송|\n|POST|/user-server/auth/verify/{key}|인증 메일 검증|\n|PUT|/user-server/auth/password|비밀번호 변경|\n|POST|/user-server/auth/password/{key}|새 비밀번호 설정 URL 검증|\n|POST|/user-server/auth/password|새 비밀번호 설정 메일 발송|\n|GET|/user-server/user/email/{username}|사용자가 가입한 이메일 찾기|\n|PUT|/user-server/user/info|개인 정보 수정|\n|POST|/user-server/user/remove|탈퇴|\n|GET|/user-server/admin/manage|사용자 관리(조회)|\n\n\u003cbr\u003e\n\n## 📸 Screenshot\n✔️ \u003cb\u003e메인\u003c/b\u003e\n![main](https://user-images.githubusercontent.com/46569105/209480347-f0168ab9-e33b-4d62-aaac-056e2266cd7e.png)\n✔️ \u003cb\u003e회원 가입\u003c/b\u003e\n![회원가입](https://user-images.githubusercontent.com/46569105/208302487-dbfba85f-1070-45ab-82db-0798db8b17d4.png)\n✔️ \u003cb\u003e로그인\u003c/b\u003e\n![로그인](https://user-images.githubusercontent.com/46569105/208302647-ffb5d79c-bd4a-49bb-ae99-6cfd869a81c2.png)\n✔️ \u003cb\u003e비밀번호 찾기\u003c/b\u003e\n![비밀번호 찾기](https://user-images.githubusercontent.com/46569105/208302597-2076778c-fa06-4c96-a0fc-0bb4c9cf307a.png)\n✔️ \u003cb\u003e사용자 관리\u003c/b\u003e\n![마킹 처리 user management page](https://user-images.githubusercontent.com/46569105/208302839-18c6865e-f7c4-486a-a6f5-5290dc651127.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flikelasttime%2Fauth-service","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flikelasttime%2Fauth-service","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flikelasttime%2Fauth-service/lists"}