python 에서 firebase_admin없이 user 혹은 client로써 로그인하기 - pyrebase4lite

햄스터아저씨·2023년 5월 4일
0

목적

파이썬에서 firebase_admin 라이브러리를 사용하는게 아닌
일반 유저로서 email, password 기반의 로그인 방식을 사용하기

사유:

  1. 임시 서버에서 사용하려는 코드가 있음
  2. firebase_admin은 권한이 너무 많아, 사용하고 싶지 않음 (보안이 약한 서버...)
  3. DB의 보안규칙 적용만 해도 충분히 사용할 수 있는 비즈니스 로직
  4. 유저급으로 권한을 제한

라이브러리

pyrebase 라는 라이브러리가 있다. 이건 오래되어 작동안함.
pyrebase4 라는 라이브러리가 있다. 이건 에러가 나서 작동하지 않음

pyrebase4lite 라는 라이브러가 있다. 이게 작동함🎉 가장 최신까지 업데이트 됨

https://pypi.org/project/pyrebase4lite/

예시

23년 5월 성공 예시

import pyrebaselite

# email 과 password는 firebase의 authentication에서
# Email 로그인을 사용설정하고 계정을 생성해두어야 한다.
email = "example@example.com" 
password = "example"

# 아래는 firebase Web project 만들 시 제공되는 js 내용을 python에 맞게 변형
config = {
  "apiKey": "~~",
  "authDomain": "example.firebaseapp.com",
  "databaseURL": "https://example.example.firebasedatabase.app",
  "storageBucket": "example.appspot.com"
}

firebase = pyrebaselite.initialize_app(config)
auth = firebase.auth()

# Log the user in
user = auth.sign_in_with_email_and_password(email, password)

# Get user info
id_token = user['idToken']
user = auth.get_account_info(id_token=id_token)

# Get a reference to the database service
db = firebase.database()
data = {
    "name": "Mortimer 'Morty' Smith"
}

results = db.child("users").push(data, id_token)
print(results)
profile
서버도 하고 웹도 하고 시스템이나 인프라나 네트워크나 그냥 다 함.

0개의 댓글