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

2024. 6. 20. 19:18Flutter/Flutter Programming

반응형

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

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

또한, '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

 

반응형