Android
Users
Android 사용자 등록 및 이메일 인증 구현 방법
18 분
이메일 인증을 통한 사용자 등록 구현 방법 소개 이 가이드에서는 사용자 등록 기능(가입)에 사용자 이메일 인증 프로세스를 설정하는 방법을 배웁니다 parse server 핵심 기능 을 사용하여 이메일 인증이 포함된 앱을 생성합니다 이 튜토리얼은 buildtoolsversion=30 0 3 buildtoolsversion=30 0 3 , compile sdk version = 30 compile sdk version = 30 및 targetsdkversion 30 targetsdkversion 30 언제든지 github 리포지토리를 통해 전체 프로젝트에 접근할 수 있습니다 코틀린 예제 리포지토리 자바 예제 리포지토리 목표 사용자 가입 기능에서 back4app에 사용자 인증 이메일 프로세스를 설정합니다 전제 조건 이 튜토리얼을 완료하려면 다음이 필요합니다 안드로이드 스튜디오 back4app에 생성 및 연결된 안드로이드 앱 안드로이드 4 1 (젤리빈) 이상에서 실행되는 가상 장치 ) 1 라이브러리 가져오기 이 단계에서는 프로젝트에서 사용할 라이브러리를 가져옵니다 다음 parse 클래스를 우리의 활동에 추가합니다 2\ 다음을 추가해야 합니다 java 1 8 java 1 8 프로젝트에 build gradle(module\ app) build gradle(module\ app) 왜냐하면 이 프로젝트에서 람다 함수를 자주 사용할 것이기 때문입니다 1 compileoptions { 2 sourcecompatibility javaversion version 1 8 3 targetcompatibility javaversion version 1 8 4 } 2 이메일 인증 활성화 이제 back4app 대시보드에서 이메일 인증을 활성화합시다 이메일 인증 페이지에는 두 가지 속성이 있습니다 사용자 이메일 인증 및 이메일이 인증되지 않은 경우 로그인 방지 사용자 이메일 인증 옵션만 활성화하면 사용자는 인증 이메일을 받지만 정상적으로 로그인하고 애플리케이션을 사용할 수 있습니다 “이메일이 인증되지 않은 경우 로그인 방지” 옵션도 활성화하면 사용자는 이메일 인증 프로세스를 완료한 후에만 로그인할 수 있습니다 1\ back4app 웹사이트 로 이동하여 서버 설정 서버 설정 을 클릭합니다 2\ “검증 이메일” 카드를 찾아 설정 설정 을 클릭합니다 3\ 사용자 이메일 검증 사용자 이메일 검증 을 클릭하고 이메일이 검증되지 않은 경우 로그인 방지 이메일이 검증되지 않은 경우 로그인 방지 을 클릭합니다 4\ 선택 사항 빈 필드를 채우고 이미 채워진 필드를 선호에 따라 수정합니다 5\ 저장 저장 버튼을 클릭합니다 3 가입하기 두 가지 기본 속성은 parseuser parseuser 클래스는 사용자 이름과 비밀번호입니다 또한 설정해야 할 세 번째 특별 속성이 있습니다 즉, 이메일입니다 이메일 확인을 통한 회원가입을 구현하기 위해, 사용자 등록을 구현할 때 사용했던 것과 동일한 방법을 사용할 것입니다 그러나 이번에는 사용자를 로그인 화면으로 리디렉션하는 대신, 사용자가 로그인하기 위해 이메일을 확인하도록 요청할 것입니다 회원가입 프로세스를 완료한 후, 사용자는 데이터베이스에 저장됩니다 사용자 데이터는 parse dashboard parse dashboard 에서 mailverified boolean 속성이 false로 설정된 상태로 사용 가능합니다 확인 이메일 프로세스는 사용자의 이메일을 확인하고 이 속성을 true로 설정하여 사용자가 앱의 모든 리소스에 완전히 접근할 수 있도록 하는 것입니다 회원가입 화면은 다음과 같이 보일 것입니다 다음 단계를 따라 signupactivity signupactivity 작업을 생성하십시오 1\ signupactivity signupactivity ,에 추가하여 1단계 의 종속성을 가져옵니다 2\ 다음 코드를 사용하여 사용자 등록을 구현합니다 1 private void signup(string username, string password, string email) { 2 progressdialog show(); 3 parseuser user = new parseuser(); 4 user setusername(username); 5 user setpassword(password); 6 user setemail(email); 7 user signupinbackground(e > { 8 progressdialog dismiss(); 9 if (e == null) { 10 parseuser logout(); 11 showalert("account created successfully!", "please verify your email before login", false); 12 } else { 13 parseuser logout(); 14 showalert("error account creation failed", "account could not be created" + " " + e getmessage(), true); 15 } 16 }); 17 }1 private fun signup(username string, password string, email string) { 2 progressdialog? show() 3 val user = parseuser() 4 user username = username 5 user setpassword(password) 6 user email = email 7 user signupinbackground(signupcallback { 8 progressdialog? dismiss() 9 if (it == null) { 10 parseuser logout(); 11 showalert("account created successfully!","please verify your email before login", false) 12 } else { 13 parseuser logout(); 14 showalert("error account creation failed","account could not be created" + " " + it message,true) 15 } 16 }) 17 } 예제 프로젝트에서 이 코드는 회원가입 회원가입 버튼 콜백 안에 있습니다 또한, 사용자 이름, 비밀번호 및 이메일은 edit texts를 사용하여 입력됩니다 이메일 주소가 유효한지 확인하는 코드를 추가한 후 프론트 엔드에 설정할 수 있습니다 마지막으로, 피드백을 제공하는 코드를 추가할 수 있습니다 가입을 마친 후 다음 메시지를 볼 수 있습니다… 3\ 경고 대화 상자를 표시하는 추가 방법을 추가하는 것이 흥미롭습니다 프로세스를 더 전문적으로 보이게 만들 수 있습니다 다음은 이를 수행하는 방법입니다 1 private void showalert(string title, string message, boolean error) { 2 alertdialog builder builder = new alertdialog builder(signupactivity this) 3 settitle(title) 4 setmessage(message) 5 setpositivebutton("ok", (dialog, which) > { 6 dialog cancel(); 7 // don't forget to change the line below with the names of your activities 8 if (!error) { 9 intent intent = new intent(signupactivity this, loginactivity class); 10 intent addflags(intent flag activity clear task | intent flag activity new task); 11 startactivity(intent); 12 } 13 }); 14 alertdialog ok = builder create(); 15 ok show(); 16 }1 private fun showalert(title string, message string, error boolean) { 2 val builder = alertdialog builder(this) 3 settitle(title) 4 setmessage(message) 5 setpositivebutton("ok") { dialog, which > 6 dialog cancel() 7 // don't forget to change the line below with the names of your activities 8 if (!error) { 9 val intent = intent(this\@signupactivity, loginactivity class java) 10 intent addflags(intent flag activity clear task or intent flag activity new task) 11 startactivity(intent) 12 } 13 } 14 val ok = builder create() 15 ok show() 16 } 가입 후 우리는 다음과 같은 이메일을 받을 것입니다 이메일을 확인한 후 속성이 true로 설정됩니다 이메일을 확인한 후 속성이 true로 설정됩니다 4 로그인 이메일 인증으로 로그인을 구현하려면, 기본 사용자 등록 하지만 이번에는 parse가 사용자가 추가 접근을 허용하기 전에 emailverified 불리언을 확인합니다 참고 사용자가 실제로 로그인하는 것은 parseuser logininbackground() 함수가 호출될 때입니다 하지만 이메일 인증이 완료될 때까지는 앱에 완전히 접근할 수 없습니다 데이터베이스에 생성된 세션 객체 때문입니다 따라서 이메일을 인증하지 않은 사용자가 애플리케이션에 접근하려고 할 때마다 parseuser logout() 을 사용하는 것이 중요합니다 그렇지 않으면 세션 세션 이 열려 있게 됩니다 2단계에서 ‘이메일이 인증되지 않은 경우 로그인 방지’ 옵션을 활성화한 경우, 이메일을 인증하지 않고 로그인하려고 하면 다음과 같은 오류가 발생합니다 loginactivity loginactivity 가 작동하도록 하려면, 다음 단계를 따르세요 1\ loginactivity loginactivity , 1단계에서 가져온 종속성과 함께 가져옵니다 2\ 사용자 로그인 기능을 구현하려면 다음 코드를 사용하세요 1 private void login(string username, string password) { 2 progressdialog show(); 3 parseuser logininbackground(username, password, (parseuser, e) > { 4 progressdialog dismiss(); 5 if (parseuser != null) { 6 showalert("login successful", "welcome, " + username + "!", false); 7 } else { 8 parseuser logout(); 9 showalert("login fail", e getmessage() + " please try again", true); 10 } 11 }); 12 }1 private fun login(username string, password string) { 2 progressdialog? show() 3 parseuser logininbackground(username,password) { parseuser parseuser?, e parseexception? > 4 progressdialog? dismiss() 5 if (parseuser != null) { 6 showalert("login successful", "welcome, $username!", false) 7 } else { 8 parseuser logout() 9 showalert("login fail", e? message + " please try again", true) 10 } 11 } 12 } 예제 프로젝트에서 이 코드는 로그인 로그인 버튼 콜백에 배치되어 있습니다 또한, 사용자 이름과 비밀번호는 edit text를 사용하여 입력받습니다 메서드 alertdisplayer alertdisplayer 는 signupactivity signupactivity 에 추가한 것과 동일합니다 intent intent 인수도 변경하는 것을 잊지 마세요 5 로그 아웃 사용자 로그 아웃을 구현하려면 아래 코드를 사용하세요, logoutactivity logoutactivity 1 progressdialog show(); 2 parseuser logoutinbackground(e > { 3 progressdialog dismiss(); 4 if (e == null) 5 showalert("so, you're going ", "ok bye bye then"); 6 });1 progressdialog!! show() 2 parseuser logoutinbackground { e parseexception? > 3 progressdialog!! dismiss() 4 if (e == null) 5 showalert("so, you're going ", "ok bye bye then") 6 } 예제 프로젝트에서 이 코드는 로그 아웃 로그 아웃 버튼 콜백 안에 있습니다 메서드 alertdisplayer alertdisplayer 는 당신이 loginactivity loginactivity 와 signupactivity signupactivity , 그 intent intent 인수들을 변경하는 것을 잊지 마세요 6 앱 테스트하기 앱을 실행하고, 몇 명의 사용자를 생성한 후, 등록 후 이메일을 확인하지 않고 로그인해 보세요 1\ 앱을 실행하고, 몇 명의 사용자를 생성한 후, 이메일을 확인하지 않고 등록 후 로그인해 보세요 2\ back4app 웹사이트 https //www back4app com/ 3\ 앱을 찾아서 대시보드 대시보드 > 코어 코어 > 브라우저 브라우저 > 사용자 사용자 를 클릭하여 생성한 사용자를 확인하세요! 완료되었습니다! 이 단계에서, parse server의 핵심 기능을 통해 back4app을 사용하여 이메일 인증으로 앱에 로그인, 가입 또는 로그아웃할 수 있습니다!