본문 바로가기
비트캠프(AI아카데미)/TIL&WIL

[비트캠프 - 클라우드 기반 AlaaS 개발자 과정] 23.03.14.(DAY-107) TIL - 파이어베이스 auth로 휴대폰인증 + 파이썬으로 파이어베이스 auth 데이터 쓰기 + 깃허브를 이미지저장고로 쓰기

by 그냥_살자 2023. 3. 14.

- 파이어베이스-authentication으로 앱에 휴대폰인증 기능 넣기(안드로이드 전용 앱)

 

1. 파이어베이스auth접속 -> sign-in method에서 전화인증 사용설정

2. sha1, sha256 찾기 (sha1만 있어도 됨)

방법1. jdk/bin 경로에서 아래코드 입력

keytool -list -v -keystore [debug.keystore경로] -alias androiddebugkey -storepass android -keypass android

예시 : 

PS C:\Program Files\JAVA\jdk-11\bin> keytool -list -v -keystore "C:\Users\SJMoon\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

방법2: android studio에서 android폴더 내 gradlew파일 실행 => 아래코드 입력

gradlew signingReport

예시 :

PS C:\Users\SJMoon\Desktop\project\android> gradlew signingReport

 

3. sha1, sha256 등록

설정으로 들어가서 추가

 

4. google-services.json를 프로젝트의 android/app 위치에 넣기

 

4. 플러터에서 위젯이랑 함수 코딩하기

핵심 코드 3개

  FirebaseAuth _auth = FirebaseAuth.instance;
  var _verificationId = ""; // 요건 깍두기

  sendSMS(_phoneNumber){
    _auth.verifyPhoneNumber(phoneNumber : _phoneNumber,
        verificationCompleted: (PhoneAuthCredential credential) async {
          print('인증 문자 수신');
        },
        verificationFailed: (FirebaseAuthException e) {
          print('인증 문자 전송 실패');
        },
        codeSent: (String verificationId, int? resendToken) async {
          print('인증 문자 전송');
          _verificationId = verificationId; // 인증 코드 확인때 필요한 값
        },
        codeAutoRetrievalTimeout: (String verificationId){});
  }

  checkSMS(code) async {
    PhoneAuthCredential credential = PhoneAuthProvider.credential(verificationId: _verificationId, smsCode: code);
    final Future<UserCredential> authCredential = _auth.signInWithCredential(credential);
  }

 

5. 실행하고 인증 잘 마치면 auth에 잘 저장됨

 

- firebase auth 데이터 파이썬으로 써먹기

 

.1. 파이썬 파이어베이스 키 가져오가

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

 

2. 키 프로젝트 안에 넣고 아래코드 참고해서 넣기

import firebase_admin
from firebase_admin import credentials, auth

# 서버등록 변수
cred = credentials.Certificate(여긴 키 경로 넣으면 됨)
default_app = firebase_admin.initialize_app(cred)

# 휴대폰번호 변수
num = "+82 010-0000-0000"

try:
    user = auth.get_user_by_phone_number(num)
    
    # 휴대폰번호로 uid 뽑아오기
    print('성공했을 경우 user의 정보를 불러옴: {0}'.format(user.uid))
except Exception as e:
    print("실패 시 에러 " + str(e))

 

- 깃허브를 이미지저장고로 쓰기

리포생성 -> 이미지 저장 -> 세팅/page이동=>브랜치 main(master)로 저장=>상단에 도메인생김 -> 안나올경우=>action탭이동=>deploy 다 돌아갔는지 확인

댓글