Backend-dev/Spring

[Spring] Firebase 초기 설정 / 스프링 프로젝트에 admin SDK 추가하기

Hannana. 2024. 2. 4. 20:32
반응형

이번에 새로 들어가게 된 프로젝트에서 소셜 로그인 인증 방식을 사용하기로 했다.

스프링부트 OAuth2 보안 설정을 직접 해주는 방법도 있지만,

다양한 소셜 로그인을 진행해야하므로 Firebase를 이용해보자.

 

먼저 Firebase 콘솔(https://firebase.google.com/?hl=ko) 에 접속해서

 

Firebase | Google’s Mobile and Web App Development Platform

개발자가 사용자가 좋아할 만한 앱과 게임을 빌드하도록 지원하는 Google의 모바일 및 웹 앱 개발 플랫폼인 Firebase에 대해 알아보세요.

firebase.google.com

 

구글 로그인 후, 프로젝트 생성-Authentication

 

 

Sign-in-method-새 제공업체 추가

본인은 구글 로그인과 카카오 로그인을 연동할 예정이므로

두 가지를 추가했다.

참고로, 카카오 로그인은 파이어베이스 제공 업체가 아니기 때문에 

별도의 설정이 필요하다.

 

 

추가를 마쳤으면 프로젝트에 Firebase Admin SDK를 설정하기 위해

프로젝트 설정-서비스계정-'새 비공개 키 생성'

을 클릭하여 json 파일을 다운받아주자.

 

 

이제 이 json파일을 프로젝트의 resource 폴더 안에 위치하게 한다.

그 후에, @Configuration 어노테이션을 사용하여 Firebase를 초기화한다.

import com.google.auth.oauth2.GoogleCredentials;
import com.google.firebase.FirebaseApp;
import com.google.firebase.FirebaseOptions;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.ClassPathResource;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

@Configuration
public class FirebaseConfig {

    @Bean
    public FirebaseApp firebaseApp() throws IOException {
        InputStream serviceAccount = new ClassPathResource("path/to/firebase_credentials.json").getInputStream();

        FirebaseOptions options = new FirebaseOptions.Builder()
                .setCredentials(GoogleCredentials.fromStream(serviceAccount))
                .build();

        return FirebaseApp.initializeApp(options);
    }
}

 

firebaseApp() 메서드에서는 Firebase Admin SDK를 사용하여 FirebaseApp을 초기화하고,

FirebaseOptions 객체를 사용하여 서비스 계정 키를 제공한다.

 

 

 

그리고 초기설정 셋팅을 해주면 끝이 난다.

 

 

build.gradle (Gradle환경)

implementation 'com.google.firebase:firebase-admin:8.0.1'

 

 

이렇게 스프링 부트 애플리케이션에서 Firebase Admin SDK를 사용할 준비가 되었다~~

 

 

 

 

반응형