전체 글(118)
-
Spring security jwt Oauth2 로그인 - 구현(2)
전체코드 : https://github.com/gks930620/spring_securty_all 구현 자체는 JWT access token,refresh token에 Oauth2 몇몇 기능을 추가한 거밖에 없다. 그래서 여기는 전체코드를 전부 설명하는것이 아니라 추가된 내용만 작성하는걸로 하고전체코드는 github를 참고하도록 하자. Custom-oauth2/login/kakao 컨트롤러이 떄 이 url은 permitALL 되어야한다. Oauth2LoginController@Controller@RequestMapping("/custom-oauth2/login")@RequiredArgsConstructorpublic class Oauth2LoginController { private fina..
2025.03.17 -
Spring Security jwt 방식 Oauth2 로그인 - 동작방식 (1)
전체코드 : https://github.com/gks930620/spring_securty_all https://brilliantdevelop.tistory.com/226에 이어 jwt방식에 oauth2로그인을 적용해보겠다. 백엔드서버인 spring boot를 기준으로 설명한다. 예시는 카카오 로그인이다. 책임분배 Oauth2 로그인에서 프론트와 백엔드가 어떤 역할까지 수행할 건지에 문제이다. 프론트에서 인가코드만 백엔드로 전달할 것인지, 프론트가 access_token까지 얻은 후 백엔드로 전달할 것인지 등이다. 이전 글에서 했던 웹 seesion방식의 Oauth2 기능은 인가코드만 백엔드로 전달하는 형태였다. 보시다시피 웹 session방식에서는 백엔드가 인가코드-access token - ..
2025.03.14 -
Spring Security jwt 방식 - access token+ refresh token(2)
전체코드 : https://github.com/gks930620/spring_securty_all https://brilliantdevelop.tistory.com/225에 이어 refresh token을 추가해토큰재발급과 로그아웃기능을 구현해보자. 설정파일application.ymlspring: datasource: url: jdbc:h2:mem:security driver-class-name: org.h2.Driver username: sa password: jpa: hibernate: ddl-auto: create properties: hibernate: show_sql: true format_sql: true ..
2025.03.12 -
Spring Security jwt 방식 - access_token(1)
전체코드 : https://github.com/gks930620/spring_securty_all 프로젝트 세팅https://start.spring.io/ 에서 프로젝트를 생성합니다. 필요한 library는Spring Data JDBC,H2 Database, Spring Data JPA, Spring Web, Thymeleaf,Spring Boot Devtools , Lombok, Spring security 입니다. jwt, dotenv(.env 환경변수 설정) 라이브러리는 buuild.gradle에 직접 추가합니다.implementation 'io.jsonwebtoken:jjwt-api:0.12.3'implementation 'io.jsonwebtoken:jjwt-impl:0.12.3'im..
2025.03.06 -
Spring Security jwt 방식 - jwt 사용이유와 session방식과의 차이 (1)
전체코드 : https://github.com/gks930620/spring_securty_all JWT 를 이용한 토큰인증방식 JWT라는 거는 JSON Web Token의 약자로서 토큰의 하나의 형식 또는 종류라 할 수 있다.토큰인증방식을 꼭 JWT를 쓸 필요는 없지만 JWT가 많이 쓰인다.토큰인증방식은 다음과 같은 방식으로 진행된다. 1. 사용자가 로그인하면 JWT를 발급 2. 이후 요청마다 JWT를 HTTP Header에 포함 (Authorization: Bearer ) 3. 서버는 토큰을 검증하여 사용자를 인증 토큰인증방식이 필요한 이유기존의 세션방식 말고 왜 토큰인증방식이 필요한가? 1. 서버확장성 세션방식은 사용자 수가 많아질수록 서버의 세션 메모리 부담이 증가하고하나의 서버가 세션을 ..
2025.03.05 -
Spring Security session방식 Oauth2로그인- 구글로그인 두개이상의 provider(5)
전체코드 : https://github.com/gks930620/spring_securty_all yml파일에서 client registration의 google을 추가합니다참고로 google 같은 경우 provider 값을 security가 갖고있기 때문에 따로 설정해주지 않아도 됩니다. 동작 방식은 https://brilliantdevelop.tistory.com/218과 같습니다. dotenv: enabled: true # .env파일설정. KAKAO_CLIENT_ID 직접 쓰려면 없어도됨.spring: datasource: url: jdbc:h2:mem:security driver-class-name: org.h2.Driver username: sa passwo..
2025.02.28