Firebase Admin SDK for Go를 소개합니다.
2017년 9월 26일 화요일
<블로그 원문은 여기에서 확인하실 수 있으며, 블로그 번역 리뷰는 도창욱(Web Technologies GDE)님이 참여해 주셨습니다.>
Firebase Admin SDK for Go가 정식 출시되었습니다. 기존에 지원 중인 자바, Python 및 Node.js외에 Admin SDK 제품군에 추가되는 네 번째 프로그래밍 언어입니다. 애플리케이션 개발자는 Firebase Admin SDK를 통해 신뢰할 수 있는 환경에서 프로그래밍을 통해 Firebase 서비스에 액세스할 수 있습니다. Firebase Admin SDK는 Firebase client SDK를 보완하여 최종 사용자가 자신의 웹브라우저와 휴대기기에서 Firebase에 액세스할 수 있도록 지원합니다. Firebase Admin SDK for Go의 초기 릴리스에서는 맞춤 토큰(Custom Token) 작성 및 ID 토큰 인증과 같은 몇 가지 Firebase 인증 기능이 함께 제공됩니다.
다른 Firebase Admin SDK와 유사하게 Go Admin SDK는 다양한 인증 자격 증명과 클라이언트 옵션을 사용하여 초기화할 수 있습니다. 다음 코드 스니펫은 Firebase 콘솔 또는 Google Cloud 콘솔에서 얻은 서비스 계정 자격 증명을 사용하여 SDK를 초기화하는 방법을 보여 줍니다.
Google App Engine 또는 Google Compute Engine과 같은 Google 인프라에서 코드를 실행하는 경우에는 SDK가 해당 환경에서 애플리케이션 기본 자격 증명을 자동으로 검색할 수 있습니다. 이 경우에는 Go Admin SDK를 초기화할 때 자격 증명의 명시적인 지정이 필요 없습니다.
그 결과로 생성되는 맞춤 토큰은 클라이언트 기기로 전송될 수 있으며, 그러면 클라이언트 기기에서 Firebase client SDK를 사용하여 인증 흐름을 초기화하는 데 이 토큰을 활용할 수 있습니다. 반면에 ID 토큰 인증은 서버에서 현재 로그인된 사용자를 보안 차원에서 식별하는 데 도움이 됩니다.
Firebase Admin SDK for Go를 사용하는 방법에 대한 자세한 내용은 Admin SDK 설정 가이드를 참조하세요.
Firebase Admin SDK for Go가 정식 출시되었습니다. 기존에 지원 중인 자바, Python 및 Node.js외에 Admin SDK 제품군에 추가되는 네 번째 프로그래밍 언어입니다. 애플리케이션 개발자는 Firebase Admin SDK를 통해 신뢰할 수 있는 환경에서 프로그래밍을 통해 Firebase 서비스에 액세스할 수 있습니다. Firebase Admin SDK는 Firebase client SDK를 보완하여 최종 사용자가 자신의 웹브라우저와 휴대기기에서 Firebase에 액세스할 수 있도록 지원합니다. Firebase Admin SDK for Go의 초기 릴리스에서는 맞춤 토큰(Custom Token) 작성 및 ID 토큰 인증과 같은 몇 가지 Firebase 인증 기능이 함께 제공됩니다.
Admin SDK for Go 초기화
다른 Firebase Admin SDK와 유사하게 Go Admin SDK는 다양한 인증 자격 증명과 클라이언트 옵션을 사용하여 초기화할 수 있습니다. 다음 코드 스니펫은 Firebase 콘솔 또는 Google Cloud 콘솔에서 얻은 서비스 계정 자격 증명을 사용하여 SDK를 초기화하는 방법을 보여 줍니다. import ( "golang.org/x/net/context" firebase "firebase.google.com/go" "google.golang.org/api/option" ) opt := option.WithCredentialsFile("path/to/key.json") app, err := firebase.NewApp(context.Background(), nil, opt)
Google App Engine 또는 Google Compute Engine과 같은 Google 인프라에서 코드를 실행하는 경우에는 SDK가 해당 환경에서 애플리케이션 기본 자격 증명을 자동으로 검색할 수 있습니다. 이 경우에는 Go Admin SDK를 초기화할 때 자격 증명의 명시적인 지정이 필요 없습니다.
import ( "golang.org/x/net/context" firebase "firebase.google.com/go" ) app, err := firebase.NewApp(context.Background(), nil)
맞춤 토큰 작성 및 ID 토큰 인증
Firebase Admin SDK for Go의 초기 릴리스에서는 맞춤 토큰 작성 및 Firebase ID 토큰 인증이 지원됩니다. 맞춤 토큰 작성 기능을 통해 자체적인 사용자 저장소 또는 인증 메커니즘을 사용하여 사용자를 인증할 수 있습니다.client, err := app.Auth() if err != nil { return err } claims := map[string]interface{}{ "premium": true, "package": "gold", } token, err := client.CustomToken("some-uid", claims)
그 결과로 생성되는 맞춤 토큰은 클라이언트 기기로 전송될 수 있으며, 그러면 클라이언트 기기에서 Firebase client SDK를 사용하여 인증 흐름을 초기화하는 데 이 토큰을 활용할 수 있습니다. 반면에 ID 토큰 인증은 서버에서 현재 로그인된 사용자를 보안 차원에서 식별하는 데 도움이 됩니다.
client, err := app.Auth() if err != nil { return err } decoded, err := client.VerifyIDToken(idToken) uid := decoded.UID
Firebase Admin SDK for Go를 사용하는 방법에 대한 자세한 내용은 Admin SDK 설정 가이드를 참조하세요.