본문 바로가기
Flutter/Flutter Programming

플러터에서 파이어베이스 로그인과 생체 인증 연동 방법

by Maccrey 2024. 6. 20.
반응형

파이어베이스는 다양한 기능을 제공하는 강력한 백엔드 서비스 플랫폼입니다.

앱에 로그인 기능을 추가하고 싶다면, 파이어베이스 인증을 사용하는 것이 가장 간편합니다.

또한, 'local_auth' 플러그인을 활용하여 생체 인증 기능을 추가하여 사용자 경험을 한 단계 더 향상시킬 수 있습니다.

 

1. 프로젝트 설정

  • 파이어베이스 콘솔에 이동하여 새로운 프로젝트를 생성하거나 기존 프로젝트를 선택합니다.
  • 좌측 메뉴에서 인증을 선택합니다.
  • 로그인 방법 탭에서 이메일/비밀번호를 활성화합니다.

2. 로컬 인증 플러그인 설치

flutter pub add local_auth

 

3. 기기에서 생체 인증 사용 가능 여부 확인

import 'package:local_auth/local_auth.dart';

Future<bool> hasBiometricSupport() async {
  final localAuth = LocalAuth();
  return await localAuth.hasBiometricSupport();
}
 

4. 사용 가능한 생체 인증 유형 확인

Future<List<BiometricType>> getAvailableBiometrics() async {
  final localAuth = LocalAuth();
  return await localAuth.getAvailableBiometrics();
}
 

5. 생체 인증 로그인 구현

import 'package:firebase_auth/firebase_auth.dart';

Future<void> signInWithBiometrics() async {
  final localAuth = LocalAuth();
  final FirebaseAuth firebaseAuth = FirebaseAuth.instance;

  final hasBiometric = await hasBiometricSupport();
  if (!hasBiometric) {
    return; // 기기가 생체 인증을 지원하지 않음
  }

  final availableBiometrics = await getAvailableBiometrics();
  final biometricType = availableBiometrics.first; // 사용 가능한 첫 번째 생체 인증 유형 선택

  final authentication = await localAuth.authenticate(
      localizedDescription: '앱에 로그인 하려면 생체 인증을 사용하세요.',
      options: AuthorizedBiometricOptions(
          localizedCancelDescription: '취소',
          biometricLockoutTitle: '생체 인증 실패',
          biometricLockoutDescription: '너무 많은 시도로 인해 잠금되었습니다. 잠시 후 다시 시도하십시오.',
          androidKeyguardOnly: false,
          stickyAuth: false),
      biometrics: [biometricType]);

  if (!authentication.success) {
    return; // 생체 인증 실패
  }

  // Firebase 인증에 생체 인증 결과 사용
  final userCredential = await firebaseAuth.signInWithCredential(
      AuthCredential.fromECProvider(
          providerId: 'biometric',
          token: authentication.credential.token));
  // 로그인 성공 처리
}
 

6. 로그인 화면에 생체 인증 버튼 추가

ElevatedButton(
  onPressed: signInWithBiometrics,
  child: Text('생체 인증으로 로그인'),
),
 

참고

  • 위 코드는 예시이며, 실제 사용 시에는 상황에 맞게 코드를 수정해야 할 수 있습니다.
  • local_auth 플러그인은 안드로이드 6.0 이상, iOS 10 이상에서만 사용 가능합니다.
  • 생체 인증은 사용자의 기기에 따라 다르게 작동할 수 있습니다.
  • 파이어베이스 인증과 관련된 자세한 내용은 https://console.firebase.google.com/ 를 참고하세요.

이 블로그 게시물이 파이어베이스 로그인과 생체 인증을 연동하는 데 도움이 되었기를 바랍니다. 궁금한 점이 있으면 언제든지 질문해주세요.

 

 

 

수발가족을 위한 일기장 “나비일기장

 

https://play.google.com/store/apps/details?id=com.maccrey.navi_diary_release

 

구글플레이 앱 배포의 시작! 비공개테스트 20명의 테스터모집을 위한 앱 "테스터 쉐어"

 

https://play.google.com/store/apps/details?id=com.maccrey.tester_share_release

 

카카오톡 오픈 채팅방

https://open.kakao.com/o/gsS8Jbzg

 

반응형