SMS 인증
Flutter 앱에서 SMS를 사용하여 인증 기능을 구현하는 방법을 안내합니다. SMS 인증은 사용자가 휴대폰 번호로 인증 코드를 받아 인증하는 간단하면서도 효과적인 방법입니다.
Last updated
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;
},
);
}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);
}
}