자체 로그인

Spring/Security

Spring Security + JWT를 이용한 자체 Login & OAuth2 Login(구글, 네이버, 카카오) API 구현 (9) - JWT 자체 로그인 & OAuth2 Login 동작 테스트

앞서 8번 과정까지해서 구현 코드 설명은 모두 끝났습니다! 이번에는 마지막으로 실제 DB에 회원 가입, 로그인이 되는지 Postman으로 동작 테스트를 해보겠습니다. 💻 index.html 생성 자체 Login은 Postman으로 테스트하도록 하고, OAuth2 로그인을 테스트하기 위해 index.html을 생성해서 테스트해봤습니다. (메인 화면으로 띄우기 위해 위치는 src/main/resources/static에 생성하였습니다.) 🎯 index.html 코드 Kakao Login Google Login Naver Login 이런 식으로 링크를 클릭하면 "/oauth2/authorization/SocialType" URL로 요청을 보내도록 했습니다. 해당 링크로 요청을 보내면, 302 redirect로..

Spring/Security

Spring Security + JWT를 이용한 자체 Login & OAuth2 Login(구글, 네이버, 카카오) API 구현 (8) - SecurityConfig 설정 클래스 생성

이제 앞에서 했던 자체 Login 필터와 OAuth2 Login 필터 등 Spring Security의 여러 설정을 담당하는 SecurityConfig 클래스를 생성해보려고 합니다! Spring Security의 설정 파일이라고 생각하면 됩니다! 위치는 global/config에 생성해줬습니다. SecurityConfig 클래스 생성 전체 코드를 먼저 보여드리고, 전체 코드가 상당히 길기 때문에 부분 부분 코드를 발췌하여 설명드리겠습니다. 🎯 SecurityConfig 전체 코드 package login.oauthtest4.global.config; import com.fasterxml.jackson.databind.ObjectMapper; import login.oauthtest4.domain.user..

Spring/Security

Spring Security + JWT를 이용한 자체 Login & OAuth2 Login(구글, 네이버, 카카오) API 구현 (4) - 자체 JSON 로그인 커스텀하기

이전 챕터에서 JWT 관련 클래스와 인증 로직을 살펴봤습니다. 이번 챕터에서는 자체 JSON 로그인 관련 클래스들을 커스텀해보겠습니다. 저는 자체 로그인 시 일반 Form Login이 아닌, 아이디와 비밀번호를 JSON 형식으로 RequestBody로 보내는 로그인 방식을 구현할 것입니다. { "email" : "aaa@bbb.com" "password" : "test123" } 이런 식으로, JSON으로 Email, Password를 보내 로그인을 하는 로그인 방식을 구현할 것입니다. Spring Security에서는 일반 Form Login을 기본적으로 제공하지만, JSON 형식의 RequestBody로 하는 로그인 방식은 기본적으로 제공하지 않습니다. 따라서, JSON 로그인 방식을 사용하기 위해 ..

Spring/Security

Spring Security + JWT를 이용한 자체 Login & OAuth2 Login(구글, 네이버, 카카오) API 구현 (3) - JWT 관련 클래스 생성 / JWT 인증 로직

이전에 JWT 정의를 살펴봤다면, 이번에는 JWT 관련 클래스를 직접 생성하여 구현해보려고 합니다! 들어가기 전 JWT 패키지 구조는 다음과 같습니다. JWT 서비스를 생성하기 위해 다음과 같은 오픈 소스 라이브러리를 사용합니다! https://github.com/auth0/java-jwt GitHub - auth0/java-jwt: Java implementation of JSON Web Token (JWT) Java implementation of JSON Web Token (JWT). Contribute to auth0/java-jwt development by creating an account on GitHub. github.com 사용하기 위해, build.gradle에 아래와 같은 의존성을 ..

Spring/Security

Spring Security + JWT를 이용한 자체 Login & OAuth2 Login(구글, 네이버, 카카오) API 구현 (2) - JWT란?

이전 User 관련 클래스 생성에 이어서 다음에는 JWT 관련 클래스를 생성해보려고 합니다. JWT 관련 클래스를 생성하기 전에, JWT가 무엇인지 간단하게 살펴보고자 합니다. 1. JWT(JSON Web Token)란? JWT는 인증에 필요한 정보들을 암호화 시킨 JSON 토큰을 의미합니다. 따라서 JWT를 이용한 인증은 유저를 인증하고 식별하기 위한 Token 기반 인증입니다. JWT는 JSON 데이터를 Base64 URL-safe Encode를 통해 인코딩하여 직렬화한 것이고, 토큰 내부에는 개인키를 통한 전자서명이 들어있습니다. ※ Base64 URL-safe Encode란, 일반적인 Base64 Encode를 URL에서 오류 없이 사용하도록 '+'와 '/'를 각각 '-', '_'으로 표현한 것입..

Spring/Security

Spring Security + JWT를 이용한 자체 Login & OAuth2 Login(구글, 네이버, 카카오) API 구현 (1) - 회원(User) 관련 클래스 생성

들어가기 전 처음 프로젝트 진행 시, 아무것도 모르던 상태에서 처음으로 만들어야겠다고 생각이 든 기능이 로그인 기능이었습니다. 처음부터 자체 Login과 OAuth2 Login(소셜 로그인)을 같이 구현해보고 싶었지만, 그 당시에는 지식이 많이 없었기 때문에(지금도 없지만...) 먼저 자체 Login을 구현해보고 OAuth2 Login을 구현해봐야겠다고 생각을 했었습니다. 구글링을 정말 많이 해봤었는데, 자체 Login과 OAuth2 Login을 함께 서술한 블로그 글은 거의 없었습니다. 그래서 구현하기가 정말 힘들었었는데 여러 삽질을 통해 구현하게 되어 기록하고자 합니다! 물론 더 나은 방법이 있을 수도 있지만, 일단 스프링 시큐리티와 JWT를 이용하여 자체 Login과 OAuth2 Login을 함께 ..

BE_성하
'자체 로그인' 태그의 글 목록