Android
Users
การตรวจสอบการยืนยันอีเมลบน Android ด้วย Parse Server
17 นาที
วิธีการดำเนินการลงทะเบียนผู้ใช้พร้อมการตรวจสอบอีเมล บทนำ ในคู่มือนี้ คุณจะได้เรียนรู้วิธีการตั้งค่ากระบวนการตรวจสอบอีเมลของผู้ใช้สำหรับฟีเจอร์การลงทะเบียนผู้ใช้ (ลงทะเบียน) คุณจะสร้างแอปที่รวมการลงทะเบียนผู้ใช้พร้อมการตรวจสอบอีเมลโดยใช้ ฟีเจอร์หลักของ parse server ผ่าน back4app บทเรียนนี้ใช้แอปพื้นฐานที่สร้างขึ้นใน android studio 4 1 1 พร้อมกับ buildtoolsversion=30 0 3 buildtoolsversion=30 0 3 , compile sdk version = 30 compile sdk version = 30 และ targetsdkversion 30 targetsdkversion 30 ในทุกช่วงเวลา คุณสามารถเข้าถึงโครงการทั้งหมดได้ผ่านที่เก็บ github ของเรา ที่เก็บตัวอย่าง kotlin ที่เก็บตัวอย่าง java เป้าหมาย ตั้งค่ากระบวนการตรวจสอบอีเมลผู้ใช้บน back4app ในฟีเจอร์การลงทะเบียนผู้ใช้ ข้อกำหนดเบื้องต้น ในการทำตามบทเรียนนี้ คุณต้องมี android studio แอปพลิเคชัน android ที่สร้างและเชื่อมต่อกับ back4app อุปกรณ์ (หรือ อุปกรณ์เสมือน ) ที่รัน android 4 1 (jelly bean) หรือใหม่กว่า 1 นำเข้าห้องสมุด ในขั้นตอนนี้เราจะนำเข้าห้องสมุดที่เราจะใช้ในโปรเจกต์ของเรา เพิ่มคลาส parse ต่อไปนี้ในกิจกรรมของเรา 2\ คุณต้องเพิ่ม java 1 8 java 1 8 ลงในโปรเจกต์ของเราผ่าน build gradle(module\ app) build gradle(module\ app) เพราะคุณจะใช้ฟังก์ชัน lambda บ่อยในโปรเจกต์นี้ 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 } ในโปรเจกต์ตัวอย่าง โค้ดนี้มีอยู่ภายใน ปุ่มลงทะเบียน ปุ่มลงทะเบียน callback นอกจากนี้ ชื่อผู้ใช้ รหัสผ่าน และอีเมลจะถูกจับโดยใช้ edit texts คุณสามารถเพิ่มโค้ดของคุณเองเพื่อตรวจสอบว่าอีเมลที่อยู่ถูกต้องก่อนที่จะตั้งค่าในส่วนหน้า สุดท้าย คุณสามารถเพิ่มโค้ดของคุณเองเพื่อให้ข้อเสนอแนะแก่ผู้ใช้ หลังจากที่ลงทะเบียนเสร็จ เราจะเห็นข้อความต่อไปนี้… 3\ น่าสนใจที่จะเพิ่มวิธีการเพิ่มเติมในการแสดง alert dialogs และทำให้กระบวนการดูเป็นมืออาชีพมากขึ้น นี่คือวิธีที่คุณสามารถทำได้ 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 } หลังจากลงทะเบียน เราจะได้รับอีเมลแบบนี้ หลังจากยืนยันอีเมล คุณสมบัติจะถูกตั้งค่าเป็นจริง หลังจากยืนยันอีเมล คุณสมบัติจะถูกตั้งค่าเป็นจริง 4 เข้าสู่ระบบ ในการดำเนินการเข้าสู่ระบบด้วยการตรวจสอบอีเมล คุณจะใช้วิธีเดียวกันกับที่คุณใช้ในการดำเนินการ การลงทะเบียนผู้ใช้ แต่ในครั้งนี้ parse จะตรวจสอบ emailverified boolean ก่อนที่จะอนุญาตให้ผู้ใช้เข้าถึงต่อไป หมายเหตุ ผู้ใช้จะเข้าสู่ระบบจริงเมื่อฟังก์ชัน parseuser logininbackground() ถูกเรียก แต่เขาไม่สามารถเข้าถึงแอปได้ทั้งหมดจนกว่าการตรวจสอบอีเมลจะเสร็จสิ้น เนื่องจากมีวัตถุ session ที่ถูกสร้างขึ้นในฐานข้อมูล ดังนั้นจึงสำคัญที่จะต้องใช้ parseuser logout() ทุกครั้งที่ผู้ใช้ที่ยังไม่ได้ตรวจสอบอีเมลพยายามเข้าถึงแอปพลิเคชันโดยไม่สำเร็จ เพื่อไม่ให้มี sessions sessions ที่เปิดอยู่ หากคุณได้เปิดใช้งานตัวเลือก ‘ป้องกันการเข้าสู่ระบบหากอีเมลยังไม่ได้รับการตรวจสอบ’ ในขั้นตอนที่ 2 คุณจะได้รับข้อผิดพลาดดังต่อไปนี้หากคุณพยายามเข้าสู่ระบบโดยไม่ตรวจสอบอีเมลของคุณ เพื่อให้ loginactivity loginactivity ทำงานได้ ให้ทำตามขั้นตอนเหล่านี้ 1\ นำเข้าไปยัง loginactivity loginactivity , นอกเหนือจากการนำเข้าขึ้นอยู่ใน ขั้นตอนที่ 1 2\ to implement user login function, simply use the following code 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 } in the example project, this code is placed available a log in log in button callback also, username and password are caught using edit texts the method alertdisplayer alertdisplayer is the same that you added in the signupactivity signupactivity , don’t forget to change its intent intent arguments though 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 } ในโปรเจกต์ตัวอย่าง โค้ดนี้มีอยู่ภายใน ปุ่มออกจากระบบ ปุ่มออกจากระบบ callback วิธีการ alertdisplayer alertdisplayer เหมือนกับที่คุณเพิ่มใน loginactivity loginactivity และ signupactivity signupactivity , อย่าลืมเปลี่ยน intent intent arguments 6 ทดสอบแอปของคุณ เรียกใช้แอปของคุณ สร้างผู้ใช้สองสามคน และลองเข้าสู่ระบบหลังจากลงทะเบียนโดยไม่ 1\ เรียกใช้แอปของคุณ สร้างผู้ใช้สองสามคน และลองเข้าสู่ระบบหลังจากลงทะเบียนโดยไม่ตรวจสอบอีเมลเพื่อดูว่ามีข้อผิดพลาดแสดงหรือไม่ 2\ เข้าสู่ระบบที่ เว็บไซต์ back4app https //www back4app com/ 3\ ค้นหาแอปของคุณและคลิกที่ แดชบอร์ด แดชบอร์ด > หลัก หลัก > เบราว์เซอร์ เบราว์เซอร์ > ผู้ใช้ ผู้ใช้ เพื่อดูผู้ใช้ที่คุณสร้างขึ้น! เสร็จสิ้น! ในขั้นตอนนี้ คุณสามารถเข้าสู่ระบบ ลงทะเบียน หรือออกจากแอปของคุณโดยใช้การตรวจสอบอีเมลด้วยฟีเจอร์หลักของ parse server ผ่าน back4app!