ALIOTHX Developers
ALIOTHXMANAGER
  • 😈DEMO App 설치
  • 크로스플랫폼 개발환경
    • ⚙️Flutter 개발환경
    • 🧑‍💻Flutter 시작하기
    • 📲폰에서 실행
    • 개발가이드
    • 🚀솔루션 설치
    • 🚦코드가이드
      • 명명 규칙및 주석처리
      • 코딩 컨벤션
      • 디렉토리 생성및 관리
      • 페이지 작성
    • 🏭Flutter 아키텍쳐
      • 채널링
      • 웹뷰
        • 웹뷰 설정
        • 웹뷰 연동
      • 보안 (Security)
        • 대칭키 암호알고리즘
        • 비대칭키 암호알고리즘
        • 메시지 다이제스트
        • 탈옥및 루팅 탐지및 차단
        • 앱 위/변조 탐지및 차단
        • 코드 난독화
    • 🖥️관리시스템
    • 🎆협업도구
  • UIUX 컴포넌트
    • UI/UX
      • 테마 적용
      • 화면방향전환
      • 토스트 (Toast)
      • 버튼 (Button)
      • 텍스트 (Text)
      • 탭바 (TabBar)
      • 이미지뷰 (ImageView)
      • 카메라/이미지
      • 페이지 트랜지션
      • 입력필드 (TextField)
      • 체크박스 (CheckBox)
      • 라디오버튼 (RadioButton)
      • 로딩바 (Loading Indicator)
      • 바텀시트 (BottomSheet)
      • 리스트뷰 (ListView)
      • 슬리버 (Sliver)
      • 사운드 (Sound)
      • 애니메이션 (Animation)
      • 위치 및 정렬
      • 커스텀 키보드
      • 카드 (Card)
      • 토글 버튼 (Toggle Button)
      • 다이얼로그 (Dialog)
      • QR코드
      • 페이지뷰 (PageView)
  • Common 컴포넌트
    • 공통모듈
      • 데이터통신과 JSON 파싱
      • 인증 연동
      • 채널링
      • 네비게이션
      • 푸시 메시지
      • SMS 인증
      • 예외처리
  • Security 컴포넌트
    • 보안모듈
      • 메시지 다이제스트
      • 암/복호화
  • Option 컴포넌트
    • 옵션모듈
      • 동영상 플레이어
      • 유튜브 연동
      • 차트
      • SNS 공유
      • 지도
      • 로컬 DB
  • 🎁라이센스및 기술지원
  • 🏢고객사
Powered by GitBook
On this page
  • SMS 인증 과정
  • 1. 휴대폰 번호 입력
  • 2. 인증 코드 전송
  • 3. 인증 코드 확인
  1. Common 컴포넌트
  2. 공통모듈

SMS 인증

Flutter 앱에서 SMS를 사용하여 인증 기능을 구현하는 방법을 안내합니다. SMS 인증은 사용자가 휴대폰 번호로 인증 코드를 받아 인증하는 간단하면서도 효과적인 방법입니다.

Previous푸시 메시지Next예외처리

Last updated 1 year ago

SMS 인증 과정

SMS 인증은 주로 다음 세 가지 단계로 구성됩니다.

  1. 휴대폰 번호 입력: 사용자는 앱에서 휴대폰 번호를 입력합니다. 이 번호로 인증 코드를 받게 됩니다.

  2. 인증 코드 전송: 입력한 휴대폰 번호로 인증 코드가 전송됩니다.

  3. 인증 코드 확인: 사용자는 받은 인증 코드를 입력하여 인증을 완료합니다.

1. 휴대폰 번호 입력

사용자는 앱 내에서 휴대폰 번호를 입력합니다. 입력한 번호로 인증 코드를 받게 됩니다.

TextFormField(
              key: keys[0],
              focusNode: focusNodes[0],
              inputFormatters: [
                FilteringTextInputFormatter.digitsOnly,
                maskFormatter,
              ],
              keyboardType: TextInputType.number,
              onChanged: (text) => setState(() {
                text = maskFormatter.unmaskText(text);
              }),
            );
  • 휴대폰 번호 입력 필드: 사용자는 휴대폰 번호를 입력할 수 있는 필드를 사용합니다. 이 필드는 번호의 형식을 지켜야 하며, 휴대폰 번호를 마스킹하는 등의 기능을 구현할 수 있습니다.

  • "인증번호 전송" 버튼: 사용자가 번호를 입력한 후에는 인증 코드를 받을 수 있도록 "인증번호 전송" 버튼을 누릅니다.

2. 인증 코드 전송

휴대폰 번호를 입력한 후, 입력한 번호로 인증 코드가 전송됩니다.

Future<void> _receiveAuthNumber() async {
    FirebaseAuth.instance.setLanguageCode("ko");

    await FirebaseAuth.instance.verifyPhoneNumber(
      timeout: const Duration(minutes: 2),
      codeAutoRetrievalTimeout: (String verificationId) {},
      phoneNumber:
          "+8210${keys[0].currentState!.value.toString().replaceAll(RegExp(r'[^0-9]'), "").substring(3)}",
      verificationCompleted: (phoneAuthCredential) async {
        print('전송 성공: ${phoneAuthCredential.token}');
      },
      verificationFailed: (verificationFailed) async {
        print('전송 실패: ${keys[0].currentState!.value.toString()}');
      },
      codeSent: (verificationId, resendingToken) async {
        flutterToast.info(
          message: "${keys[0].currentState!.value.toString()}로 인증코드를 발송하였습니다.",
        );
        setState(() {
          isTimerRunning = true;
          isPhoneAuthSuccessed = false;
        });
      this.verificationId = verificationId;
      },
    );
  }
  • 인증번호 전송 버튼 클릭: 이 버튼을 클릭하면 입력한 휴대폰 번호로 인증 코드가 전송됩니다. 사용자에게 전송 완료 메시지가 표시됩니다.

3. 인증 코드 확인

사용자가 인증 코드를 받은 후, 해당 코드를 입력하여 인증을 완료합니다.

Future<void> _signInWithPhoneAuthCredential(
      PhoneAuthCredential phoneAuthCredential) async {
    try {
      final authCredential =
          await FirebaseAuth.instance.signInWithCredential(phoneAuthCredential);
      if (authCredential.user != null) {
        await FirebaseAuth.instance.currentUser?.delete();
        FirebaseAuth.instance.signOut();
      }
      flutterToast.info(
        message: "인증확인",
      );
      print('인증 성공');
      setState(() {
        isTimerRunning = false;
        isPhoneAuthSuccessed = true;
      });
    } on FirebaseAuthException catch (error) {
      print(error);
    }
  }
  • 인증 코드 입력 필드: 사용자는 받은 인증 코드를 입력할 수 있는 필드를 사용합니다.

  • "인증확인" 버튼: 사용자가 인증 코드를 입력한 후, "인증확인" 버튼을 누르면 입력한 코드가 검증되고 인증이 완료됩니다.

SMS 인증은 사용자가 앱을 빠르게 인증하고 보안을 유지하는 간편한 방법입니다. Flutter를 사용하여 SMS 인증을 구현하면 사용자 경험을 개선하고 보안을 강화할 수 있습니다.

Page cover image