본문 바로가기
Flutter/Firebase

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

by Maccrey Coding 2024. 7. 26.
728x90
반응형

 

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

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

또한, '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/ 를 참고하세요.

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

 

Starting Google Play App Distribution! "Tester Share" for Recruiting 20 Testers for a Closed Test.

 

Tester Share [테스터쉐어] - Google Play 앱

Tester Share로 Google Play 앱 등록을 단순화하세요.

play.google.com

 

728x90
반응형