Firebase sns_login 세 번째 시간이다. 오늘은 카카오 로그인 구현을 위한 Firebase admin SDK설정과 Spring boot api서버를 설정한다.
Index
- Firebase admin SDK 설정 및 비공개 키 생성
- Spring boot api서버 생성 및 세팅
Firebase admin SDK 설정 및 비공개 키 생성
지난 시간에 만들어 놓은 Firebase 콘솔에서 프로젝트를 선택하면 아래 이미지가 나오고 차례대로 선택한다.
프로젝트 설정 > 서비스 계정 > SDK 구성 언어 선택 > 새 비공개 키 생성
저장 하는 새 비공개 키는 적당히 자신이 알아볼 수 있도록 변경한다.
그리고 혹시라도 프로젝트를 git으로 등록할 때에는 꼭!!! gitignore에 명시해서 github에 올리지 말자!!
나는 testsnsloginsecret.json으로 저장함!
Spring boot api 서버 생성 및 세팅
스프링을 다룰줄 알고 있다고 가정하고 있기 때문에 기본 프로젝트 설명은 하지 않는다.
Java : 11
Spring boot : 2.5.1
dependency
starter-web
devtools
lombok
firebase admin
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.1</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>testsnslogin_server</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>testsnslogin_server</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>11</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.firebase</groupId>
<artifactId>firebase-admin</artifactId>
<version>7.3.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
|
cs |
생성한 비밀키 프로젝트에 복사
src/main/resources 아래 넣어준다.
FirebaseConfig.java 파일 생성
package com.example.testsnslogin_server.config;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import javax.annotation.PostConstruct;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.firebase.FirebaseApp;
import com.google.firebase.FirebaseOptions;
import org.springframework.context.annotation.Configuration;
@Configuration
public class FirebaseConfig {
@PostConstruct
public void init() {
try {
FileInputStream serviceAccount = new FileInputStream("src/main/resources/serviceAccountKey.json");
FirebaseOptions options = FirebaseOptions.builder().setCredentials(GoogleCredentials.fromStream(serviceAccount)).build();
FirebaseApp.initializeApp(options);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
|
cs |
FileInputStream 생성자 인자로 Admin SDK를 다운로드하였던 파일 경로를 넣어준다.
연결 테스트
Spring boot 서버를 debug모드로 start 한 후 실제 FirebaseOptions 객체가 만들어지고 FirebaseApp.initializeApp(options)가 정상 작동되는지 확인한다.
Debug 모드로 Server 기동
FirebaseConfig.java의 Init 메서드가 실행되고 왼쪽 창에 실제 FirebaseOptions 객체가 생성된 걸 확인할 수 있다.
생성된 FileInputStream serviceAccount / FirebaseOptions options 객체
스프링 부트를 기동 했을 때 생성된 객체가 확인되면 우선 기본 연결은 정상으로 판단할 수 있다.
다음 시간에는 연결된 Spring boot 서버로 카카오 로그인 방법을 포스팅할 예정이다! 오늘은 끝!!
'Dart & Flutter > Firebase auth + Spring boot' 카테고리의 다른 글
Firebase auth + Spring boot + FLutter 사용자 등록 및 로그인 완료 #06 (6) | 2021.07.01 |
---|---|
Flutter + Spring boot 연결 및 카카오 로그인 연동 (인가코드/Access token/ user info ) #05 (0) | 2021.06.29 |
Firebase & 카카오 로그인 연동 ( developers.kakao.com 설정편 ) #04 (0) | 2021.06.28 |
Firebase - Google 로그인 / 로그아웃 #02 (4) | 2021.06.24 |
Firebase_auth - Android 설정 (windows10/VSCode) #01 (0) | 2021.06.22 |