คุณอาจต้องการสร้างแอพของคุณด้วยกลไกการเข้าสู่ระบบแบบกำหนดเองและการเข้าสู่ระบบด้วย Facebook คู่มือนี้แสดงสถานการณ์จำลองบางรูปแบบ และให้คำแนะนำในการจัดการประสบการณ์ของผู้ใช้ในการใช้แอพเหล่านี้
คุณสามารถใช้ระบบการเข้าสู่ระบบของคุณเองเพื่อให้ผู้ใช้สมัครใช้แอพด้วยอีเมลและรหัสผ่านของตน และสร้างบัญชีผู้ใช้ให้ผู้ใช้ได้ โดยทั่วไป แอพจะใช้ขั้นตอนการตรวจสอบยืนยันอีเมลในกรณีนี้เพื่อตรวจสอบตัวตน
หรือคุณอาจเลือกใช้การเข้าสู่ระบบด้วย Facebook สำหรับระบบการเข้าสู่ระบบทั้งหมดก็ได้ ในกรณีนี้ ผู้ใช้จะสมัครแอพโดยใช้การเข้าสู่ระบบด้วย Facebook จากนั้นระบบจะสร้างบัญชีผู้ใช้ให้และ Facebook จะดำเนินการตามขั้นตอนการตรวจสอบสิทธิ์
นอกจากสถานการณ์นี้แล้ว แอพของคุณอาจต้องรับมือกับสถานการณ์นี้ซับซ้อนกว่านี้ได้ ดังนี้
คู่มือนี้แสดงสิ่งที่เราคิดว่าเป็นวิธีจัดการสถานการณ์เหล่านี้ได้ดีที่สุด
ส่วนนี้อธิบายกรณีที่มีผู้ใช้ใช้ระบบการเข้าสู่ระบบแบบกำหนดเองของแอพเพื่อสร้างบัญชีผู้ใช้ และต่อมาในขณะที่ยังอยู่ในระบบ ผู้ใช้ต้องการผูกบัญชีผู้ใช้ Facebook กับบัญชีผู้ใช้นั้น เช่น ผู้ใช้สมัคร Spotify ด้วยที่อยู่อีเมลและรหัสผ่าน แต่กลับเลือกผูกบัญชีผู้ใช้นั้นกับบัญชีผู้ใช้ Facebook ของตนในภายหลังโดยใช้การเข้าสู่ระบบด้วย Facebook เช่น เมื่อต้องการเผยแพร่กิจกรรมการฟังเพลงลงในไทม์ไลน์
โปรดอ่านคู่มือการใช้ลำดับขั้นตอนการเข้าสู่ระบบด้วย Facebook ในแอพเพื่อดำเนินการขั้นตอนนี้ จากตัวอย่าง Spotify คุณเริ่มลำดับขั้นตอนการเข้าสู่ระบบด้วย Facebook ในแอพจนถึงเมื่อผู้ใช้ระบุว่าต้องการเผยแพร่กิจกรรมการฟังเพลง หรือคุณอาจให้ตัวเลือกอย่างชัดเจนในการผูกบัญชีผู้ใช้ของตนกับบัญชีผู้ใช้ Facebook
หลังจากผู้ใช้เข้าสู่ระบบแอพโดยใช้ระบบการเข้าสู่ระบบของคุณเอง แล้วดำเนินการลำดับขั้นตอนการเข้าสู่ระบบด้วย Facebook แอพของคุณจะต้องรวมสิ่งที่สำคัญสองอย่างเข้าด้วยกัน ดังนี้
ในแอพส่วนใหญ่ บัญชีผู้ใช้เดิมจะเก็บไว้ในตารางฐานข้อมูล วิธีที่ง่ายที่สุดก็คือผูกข้อมูลบัญชีผู้ใช้ Facebook นั้นกับบัญชีผู้ใช้ในฐานข้อมูล
โดยมากควรสร้างตารางใหม่เพื่อเก็บข้อมูลบัญชีผู้ใช้ Facebook ของผู้ใช้จะดีกว่า ข้อดีของการทำตารางแยกกันแทนที่จะเพิ่มคอลัมน์ใหม่ในตารางบัญชีผู้ใช้ที่มีอยู่เดิมก็คือ ช่วยให้คุณรองรับการเข้าสู่ระบบบัญชีผู้ใช้ OAuth อื่นได้เร็วกว่าเมื่อเวลาผ่านไป
หากผู้ใช้เดิมเลือกเข้าสู่ระบบแอพของคุณในอนาคต คุณสามารถจับคู่ข้อมูลที่มีในฐานข้อมูลเพื่อให้ผู้ใช้เข้าสู่ระบบโดยใช้วิธีการทั้งสองแบบได้อย่างราบรื่น
ในกรณีนี้ ผู้ใช้เข้าสู่ระบบแอพของคุณด้วยข้อมูลบัญชีผู้ใช้ของตัวเอง เช่น ที่อยู่อีเมลและรหัสผ่าน ต่อมาเมื่อผู้ใช้ออกจากระบบ ก็ได้เลือกเข้าสู่ระบบแอพของคุณด้วยการเข้าสู่ระบบด้วย Facebook ตอนนี้แอพมีบัญชีผู้ใช้สองบัญชีจากผู้ใช้เดียว โดยบัญชีหนึ่งสร้างผ่านระบบการเข้าสู่ระบบของแอพ อีกบัญชีหนึ่งสร้างผ่านลำดับขั้นตอนการเข้าสู่ระบบ Facebook แอพควรพยายามรวมบัญชีทั้งสองให้เป็นหนึ่งเพื่อให้ประสบการณ์ที่ดีที่สุดแก่ผู้ใช้
คู่มือนี้สันนิษฐานว่าบัญชีผู้ใช้แต่ละบัญชีที่แอพสร้างมีที่อยู่อีเมลที่ผูกไว้อยู่ แต่ผู้ใช้อาจเคยใช้อีเมลอื่นในการสร้างบัญชีผู้ใช้เดิม แทนที่จะใช้บัญชีที่ผูกกับบัญชีผู้ใช้ Facebook ของตนได้ ในกรณีนี้ คุณควรให้ตัวเลือก "การรวมบัญชี" อย่างชัดแจ้งในแอพ จากนั้นอนุญาตให้ผู้ใช้ระบุบัญชีผู้ใช้ทั้งสองที่ตนต้องการรวมได้ด้วยตัวเอง
นอกจากนี้ หากบัญชีผู้ใช้ที่กำหนดเองของคุณไม่ได้เก็บที่อยู่อีเมลไว้ คุณอาจต้องอนุญาตให้ผู้ใช้ระบุบัญชีผู้ใช้ที่ต้องการรวมได้ด้วยตัวเองด้วย
หากระบบการเข้าสู่ระบบที่กำหนดเองของแอพใช้ที่อยู่อีเมลในการระบุตัวตนบัญชีผู้ใช้แต่ละบัญชี คุณควรขอที่อยู่อีเมลของผู้ใช้ (ใช้สิทธิ์การอนุญาต email
) ในระหว่างลำดับขั้นตอนการเข้าสู่ระบบด้วย Facebook โปรดดูวิธีทำใน คู่มือการขอสิทธิ์การอนุญาต
หลังจากเข้าสู่ระบบด้วย Facebook สำเร็จ คุณจะมีที่อยู่อีเมล, Facebook ID และโทเค็นการเข้าถึงของผู้ใช้ แอพของคุณควรค้นหาบัญชีผู้ใช้เดิมที่สร้างด้วยที่อยู่อีเมลเดียวกันนั้น หากมี คุณควรรวมบัญชีผู้ใช้ทั้งสองและเพิ่มข้อมูล Facebook ในบัญชีผู้ใช้เดิมดังที่ แนะนำไว้ข้างต้น
เมื่อถึงจุดนี้ คุณควรให้ผู้ใช้เข้าสู่ระบบตามปกติ
หากไม่มีรายการที่อยู่อีเมลนั้นในฐานข้อมูล คุณควรถือว่าผู้ใช้คนนี้คือผู้ใช้ใหม่
สถานการณ์นี้จะเกิดเมื่อผู้ใช้สร้างบัญชีผู้ใช้ในแอพโดยใช้การเข้าสู่ระบบด้วย Facebook และต้องการเข้าสู่ระบบบัญชีผู้ใช้นี้โดยใช้ข้อมูลประจำตัวและรหัสผ่านที่ไม่ซ้ำกันในภายหลัง เช่น Netflix มีเว็บแอพที่ใช้การเข้าสู่ระบบ Facebook ร่วมกับระบบการเข้าสู่ระบบปกติ และแอพ Xbox 360 ที่ผู้ใช้สามารถใช้ระบบการเข้าสู่ระบบปกติเท่านั้น
หากคุณใช้ที่อยู่อีเมลเป็นข้อมูลการเข้าสู่ระบบที่ไม่ซ้ำกันซึ่งใช้ระบุบัญชีผู้ใช้แต่ละบัญชี แอพควรยืนยันว่าที่อยู่อีเมลที่ผูกกับบัญชีผู้ใช้ Facebook ของผู้ใช้ (และที่ได้รับมาระหว่างการเข้าสู่ระบบ Facebook) นั้นสามารถใช้ได้ คุณสามารถดำเนินการได้โดยการสร้างรหัสในแอพเพื่อส่งอีเมลยืนยันไปยังที่อยู่ที่ได้รับหลังจากการเข้าสู่ระบบ Facebook (คุณอาจต้องมีขั้นตอนนี้ในระบบการเข้าสู่ระบบปกติอยู่แล้ว)
หลังจากยืนยันที่อยู่อีเมลแล้ว คุณสามารถขอให้ผู้ใช้กรอกรหัสผ่านโดยระบุว่าสามารถใช้รหัสผ่านนี้เพื่อเข้าสู่ระบบแอพในอนาคตร่วมกับที่อยู่อีเมลของตนได้ หลังจากได้รับรหัสผ่านแล้ว คุณสามารถเพิ่มลงไปในฐานข้อมูลที่ใช้เก็บข้อมูลบัญชีผู้ใช้ในปัจจุบัน
หากระบบการเข้าสู่ระบบของแอพไม่ได้ใช้ที่อยู่อีเมล์เป็นตัวระบุและใช้ข้อมูลอื่นที่ผู้ใช้สร้างแทน เช่น ชื่อผู้ใช้ คุณควรร้องขอให้ผู้ใช้ให้ข้อมูลนี้ในช่วงเวลาเดียวกับที่ขอรหัสผ่าน
ผู้ใช้อาจคาดหวังว่าแอพของคุณจะอนุญาตให้ลบบัญชีผู้ใช้ Facebook ที่ผูกกับบัญชีผู้ใช้ในการเข้าสู่ระบบได้ ซึ่งหมายถึงการลบข้อมูล Facebook ของผู้ใช้นั้นออกจากตารางฐานข้อมูลบัญชีผู้ใช้ของคุณ