CouchCoding 5주차

hii_·2022년 5월 1일
0

CouchCoding

목록 보기
5/6
  1. Oauth
  • 요즈음 구글, 카카오, 네이버등 다른 서비스의 아이디를 이용해서 로그인을 하는 기술을 OAuth라고 하는데, Oauth 제공 서비스인 Firebase를 이용하여 google 로그인을 구현해보았다.

  • 위 사진은 Oauth의 구성요소들과 각각의 동작방식을 나타낸 로직이다.
  1. Firebase로 Google 로그인 구현하기

1) 프로젝트 셋업

  • Firebase Admin SDK에서 시작하기를 누르고 비공개키를 다운받은 뒤, 그 위치를 환경변수로 등록해준다.

2) Firebase 초기화

  • FirebaseInitializer라는 Configuration을 하나 만들어 FirebaseAuth(인증 관련 모듈)을 초기화한다.

3) Filter에서 인증토큰 검증하기

  • Controller에 접근하기 전에 먼저 Request를 인터셉트 해서 전처리 역할 및 후처리 역할을 할 수 있는데, 우리는 전처리 역할을 하게끔 만들었다.

  • Filter는 Spring Security 설정과 결합하면 특정 Request와 결합할때만 사용자 요청을 처리할 수 있다. 따라서, 토큰을 검증하는 Filter를 만들고 Security 요청에 따라 검증하도록 하였다.
    (Client 단에서 Header에 Authorization: Bearer {FirebaseIdToken} 형태로 메세지가 온다고 가정)

  • FirebaseTokenFilter :
    doFilterInternal를 override해서 Request가 들어오면 Header에서 토큰을 가져와서 FirebaseAuth로 토큰을 검증하고 UserDetailsService에서 사용자 정보를 가져와 SecuriyContext에 추가해주는 로직을 따르도록 하였다.

  • SecurityConfig :
    HttpRequest를 받는 부분에 filter를 적용(addFilterBefore)하고 WebSecurity를 받는 부분에서 ignoring()에 Filter를 적용하지 않을 요청들을 추가하였다. 추가하지 않은 요청들은 FirebaseTokenFilter에서 토큰검증이 수행된다.

profile
🐢👩‍💻⛄🤍💜

0개의 댓글