การใช้การเข้าสู่ระบบด้วย Facebook กับระบบการเข้าสู่ระบบแบบเดิม

คุณอาจต้องการสร้างแอพของคุณด้วยกลไกการเข้าสู่ระบบแบบกำหนดเองและการเข้าสู่ระบบด้วย Facebook คู่มือนี้แสดงสถานการณ์จำลองบางรูปแบบ และให้คำแนะนำในการจัดการประสบการณ์ของผู้ใช้ในการใช้แอพเหล่านี้

ภาพรวม

คุณสามารถใช้ระบบการเข้าสู่ระบบของคุณเองเพื่อให้ผู้ใช้สมัครใช้แอพด้วยอีเมลและรหัสผ่านของตน และสร้างบัญชีผู้ใช้ให้ผู้ใช้ได้ โดยทั่วไป แอพจะใช้ขั้นตอนการตรวจสอบยืนยันอีเมลในกรณีนี้เพื่อตรวจสอบตัวตน

หรือคุณอาจเลือกใช้การเข้าสู่ระบบด้วย Facebook สำหรับระบบการเข้าสู่ระบบทั้งหมดก็ได้ ในกรณีนี้ ผู้ใช้จะสมัครแอพโดยใช้การเข้าสู่ระบบด้วย Facebook จากนั้นระบบจะสร้างบัญชีผู้ใช้ให้และ Facebook จะดำเนินการตามขั้นตอนการตรวจสอบสิทธิ์

นอกจากสถานการณ์นี้แล้ว แอพของคุณอาจต้องรับมือกับสถานการณ์นี้ซับซ้อนกว่านี้ได้ ดังนี้

  • ผู้ใช้สมัครใช้แอพโดยใช้อีเมลและรหัสผ่านของตน แต่ต้องการใช้การเข้าสู่ระบบด้วย Facebook ในภายหลังเพื่อรับข้อมูลจากบัญชีผู้ใช้ Facebook ที่ตนมี โพสต์ลงไทม์ไลน์ หรือเพียงใช้เพื่อเข้าสู่ระบบในอนาคต
  • ผู้ใช้สมัครแอพโดยใช้อีเมลและรหัสผ่านของตน แต่เลือกเข้าสู่ระบบด้วย Facebook แยกต่างหากในภายหลัง คู่มือนี้สันนิษฐานว่าอีเมลที่ให้ไว้ในครั้งแรกและอีเมลหลักที่ผูกกับบัญชีผู้ใช้ Facebook นั้นเป็นอีเมลเดียวกัน
  • ผู้ใช้สมัครใช้แอพโดยใช้การเข้าสู่ระบบด้วย Facebook และต้องการเข้าสู่ระบบบัญชีผู้ใช้นี้โดยใช้ที่อยู่อีเมลและรหัสผ่านในภายหลัง

คู่มือนี้แสดงสิ่งที่เราคิดว่าเป็นวิธีจัดการสถานการณ์เหล่านี้ได้ดีที่สุด

การผูกการเข้าสู่ระบบด้วย Facebook กับบัญชีผู้ใช้ที่อยู่ในระบบอยู่แล้ว

ส่วนนี้อธิบายกรณีที่มีผู้ใช้ใช้ระบบการเข้าสู่ระบบแบบกำหนดเองของแอพเพื่อสร้างบัญชีผู้ใช้ และต่อมาในขณะที่ยังอยู่ในระบบ ผู้ใช้ต้องการผูกบัญชีผู้ใช้ Facebook กับบัญชีผู้ใช้นั้น เช่น ผู้ใช้สมัคร Spotify ด้วยที่อยู่อีเมลและรหัสผ่าน แต่กลับเลือกผูกบัญชีผู้ใช้นั้นกับบัญชีผู้ใช้ Facebook ของตนในภายหลังโดยใช้การเข้าสู่ระบบด้วย Facebook เช่น เมื่อต้องการเผยแพร่กิจกรรมการฟังเพลงลงในไทม์ไลน์

1. เพิ่มลำดับขั้นตอนการเข้าสู่ระบบ Facebook ในแอพ

โปรดอ่านคู่มือการใช้ลำดับขั้นตอนการเข้าสู่ระบบด้วย Facebook ในแอพเพื่อดำเนินการขั้นตอนนี้ จากตัวอย่าง Spotify คุณเริ่มลำดับขั้นตอนการเข้าสู่ระบบด้วย Facebook ในแอพจนถึงเมื่อผู้ใช้ระบุว่าต้องการเผยแพร่กิจกรรมการฟังเพลง หรือคุณอาจให้ตัวเลือกอย่างชัดเจนในการผูกบัญชีผู้ใช้ของตนกับบัญชีผู้ใช้ Facebook

2. จัดการการรวมข้อมูลบัญชีผู้ใช้

หลังจากผู้ใช้เข้าสู่ระบบแอพโดยใช้ระบบการเข้าสู่ระบบของคุณเอง แล้วดำเนินการลำดับขั้นตอนการเข้าสู่ระบบด้วย Facebook แอพของคุณจะต้องรวมสิ่งที่สำคัญสองอย่างเข้าด้วยกัน ดังนี้

  • บัญชีผู้ใช้ที่แอพสร้าง
  • ข้อมูลจาก Facebook ที่ระบุบัญชีผู้ใช้ Facebook ของผู้ใช้นั้น

ในแอพส่วนใหญ่ บัญชีผู้ใช้เดิมจะเก็บไว้ในตารางฐานข้อมูล วิธีที่ง่ายที่สุดก็คือผูกข้อมูลบัญชีผู้ใช้ Facebook นั้นกับบัญชีผู้ใช้ในฐานข้อมูล

โดยมากควรสร้างตารางใหม่เพื่อเก็บข้อมูลบัญชีผู้ใช้ Facebook ของผู้ใช้จะดีกว่า ข้อดีของการทำตารางแยกกันแทนที่จะเพิ่มคอลัมน์ใหม่ในตารางบัญชีผู้ใช้ที่มีอยู่เดิมก็คือ ช่วยให้คุณรองรับการเข้าสู่ระบบบัญชีผู้ใช้ OAuth อื่นได้เร็วกว่าเมื่อเวลาผ่านไป

หากผู้ใช้เดิมเลือกเข้าสู่ระบบแอพของคุณในอนาคต คุณสามารถจับคู่ข้อมูลที่มีในฐานข้อมูลเพื่อให้ผู้ใช้เข้าสู่ระบบโดยใช้วิธีการทั้งสองแบบได้อย่างราบรื่น

การรวมบัญชีผู้ใช้ที่สร้างแยกต่างหากด้วยการเข้าสู่ระบบด้วย Facebook

ในกรณีนี้ ผู้ใช้เข้าสู่ระบบแอพของคุณด้วยข้อมูลบัญชีผู้ใช้ของตัวเอง เช่น ที่อยู่อีเมลและรหัสผ่าน ต่อมาเมื่อผู้ใช้ออกจากระบบ ก็ได้เลือกเข้าสู่ระบบแอพของคุณด้วยการเข้าสู่ระบบด้วย Facebook ตอนนี้แอพมีบัญชีผู้ใช้สองบัญชีจากผู้ใช้เดียว โดยบัญชีหนึ่งสร้างผ่านระบบการเข้าสู่ระบบของแอพ อีกบัญชีหนึ่งสร้างผ่านลำดับขั้นตอนการเข้าสู่ระบบ Facebook แอพควรพยายามรวมบัญชีทั้งสองให้เป็นหนึ่งเพื่อให้ประสบการณ์ที่ดีที่สุดแก่ผู้ใช้

คู่มือนี้สันนิษฐานว่าบัญชีผู้ใช้แต่ละบัญชีที่แอพสร้างมีที่อยู่อีเมลที่ผูกไว้อยู่ แต่ผู้ใช้อาจเคยใช้อีเมลอื่นในการสร้างบัญชีผู้ใช้เดิม แทนที่จะใช้บัญชีที่ผูกกับบัญชีผู้ใช้ Facebook ของตนได้ ในกรณีนี้ คุณควรให้ตัวเลือก "การรวมบัญชี" อย่างชัดแจ้งในแอพ จากนั้นอนุญาตให้ผู้ใช้ระบุบัญชีผู้ใช้ทั้งสองที่ตนต้องการรวมได้ด้วยตัวเอง
นอกจากนี้ หากบัญชีผู้ใช้ที่กำหนดเองของคุณไม่ได้เก็บที่อยู่อีเมลไว้ คุณอาจต้องอนุญาตให้ผู้ใช้ระบุบัญชีผู้ใช้ที่ต้องการรวมได้ด้วยตัวเองด้วย

1. แก้ไขลำดับขั้นตอนการเข้าสู่ระบบด้วย Facebook เพื่อร้องขอสิทธิ์การอนุญาตสำหรับอีเมล

หากระบบการเข้าสู่ระบบที่กำหนดเองของแอพใช้ที่อยู่อีเมลในการระบุตัวตนบัญชีผู้ใช้แต่ละบัญชี คุณควรขอที่อยู่อีเมลของผู้ใช้ (ใช้สิทธิ์การอนุญาต email) ในระหว่างลำดับขั้นตอนการเข้าสู่ระบบด้วย Facebook โปรดดูวิธีทำใน คู่มือการขอสิทธิ์การอนุญาต

2. รวมบัญชีผู้ใช้การเข้าสู่ระบบด้วย Facebook กับบัญชีผู้ใช้ของแอพ

หลังจากเข้าสู่ระบบด้วย Facebook สำเร็จ คุณจะมีที่อยู่อีเมล, Facebook ID และโทเค็นการเข้าถึงของผู้ใช้ แอพของคุณควรค้นหาบัญชีผู้ใช้เดิมที่สร้างด้วยที่อยู่อีเมลเดียวกันนั้น หากมี คุณควรรวมบัญชีผู้ใช้ทั้งสองและเพิ่มข้อมูล Facebook ในบัญชีผู้ใช้เดิมดังที่ แนะนำไว้ข้างต้น

เมื่อถึงจุดนี้ คุณควรให้ผู้ใช้เข้าสู่ระบบตามปกติ

หากไม่มีรายการที่อยู่อีเมลนั้นในฐานข้อมูล คุณควรถือว่าผู้ใช้คนนี้คือผู้ใช้ใหม่

การเพิ่มข้อมูลการเข้าสู่ระบบด้วยตนเองไปยังบัญชีผู้ใช้สำหรับการเข้าสู่ระบบด้วย Facebook ที่สร้างขึ้น

สถานการณ์นี้จะเกิดเมื่อผู้ใช้สร้างบัญชีผู้ใช้ในแอพโดยใช้การเข้าสู่ระบบด้วย Facebook และต้องการเข้าสู่ระบบบัญชีผู้ใช้นี้โดยใช้ข้อมูลประจำตัวและรหัสผ่านที่ไม่ซ้ำกันในภายหลัง เช่น Netflix มีเว็บแอพที่ใช้การเข้าสู่ระบบ Facebook ร่วมกับระบบการเข้าสู่ระบบปกติ และแอพ Xbox 360 ที่ผู้ใช้สามารถใช้ระบบการเข้าสู่ระบบปกติเท่านั้น

1. ตรวจดูว่าที่อยู่อีเมลสำหรับการเข้าสู่ระบบด้วย Facebook ได้รับการยืนยันแล้ว

หากคุณใช้ที่อยู่อีเมลเป็นข้อมูลการเข้าสู่ระบบที่ไม่ซ้ำกันซึ่งใช้ระบุบัญชีผู้ใช้แต่ละบัญชี แอพควรยืนยันว่าที่อยู่อีเมลที่ผูกกับบัญชีผู้ใช้ Facebook ของผู้ใช้ (และที่ได้รับมาระหว่างการเข้าสู่ระบบ Facebook) นั้นสามารถใช้ได้ คุณสามารถดำเนินการได้โดยการสร้างรหัสในแอพเพื่อส่งอีเมลยืนยันไปยังที่อยู่ที่ได้รับหลังจากการเข้าสู่ระบบ Facebook (คุณอาจต้องมีขั้นตอนนี้ในระบบการเข้าสู่ระบบปกติอยู่แล้ว)

2. ขอให้ผู้ใช้กรอกรหัสผ่านใหม่ (และข้อมูลอื่น)

หลังจากยืนยันที่อยู่อีเมลแล้ว คุณสามารถขอให้ผู้ใช้กรอกรหัสผ่านโดยระบุว่าสามารถใช้รหัสผ่านนี้เพื่อเข้าสู่ระบบแอพในอนาคตร่วมกับที่อยู่อีเมลของตนได้ หลังจากได้รับรหัสผ่านแล้ว คุณสามารถเพิ่มลงไปในฐานข้อมูลที่ใช้เก็บข้อมูลบัญชีผู้ใช้ในปัจจุบัน

หากระบบการเข้าสู่ระบบของแอพไม่ได้ใช้ที่อยู่อีเมล์เป็นตัวระบุและใช้ข้อมูลอื่นที่ผู้ใช้สร้างแทน เช่น ชื่อผู้ใช้ คุณควรร้องขอให้ผู้ใช้ให้ข้อมูลนี้ในช่วงเวลาเดียวกับที่ขอรหัสผ่าน

ผู้ใช้อาจคาดหวังว่าแอพของคุณจะอนุญาตให้ลบบัญชีผู้ใช้ Facebook ที่ผูกกับบัญชีผู้ใช้ในการเข้าสู่ระบบได้ ซึ่งหมายถึงการลบข้อมูล Facebook ของผู้ใช้นั้นออกจากตารางฐานข้อมูลบัญชีผู้ใช้ของคุณ