การเข้าสู่ระบบด้วย Facebook มีประโยชน์หลักๆ อยู่ 2 ประการ นั่นคือ การยืนยันตัวตนและสิทธิ์การเข้าถึงข้อมูล โดยประโยชน์ทั้ง 2 ประการนี้สามารถเกิดขึ้นร่วมกันได้ คุณสามารถใช้การเข้าสู่ระบบด้วย Facebook เพื่อยืนยันตัวตนของผู้ใช้ได้โดยไม่ต้องวางแผนที่จะเข้าถึงข้อมูลของผู้ใช้เหล่านั้น ในกรณีดังกล่าว คุณไม่จำเป็นต้องขอสิทธิ์การอนุญาตหรือนำแอพของคุณเข้ารับการตรวจสอบแอพ
การยืนยันตัวตนและสิทธิ์การเข้าถึงข้อมูลต่างมีระยะเวลาจำกัด แต่ระยะเวลาหมดอายุของการยืนยันตัวตนและสิทธิ์การเข้าถึงข้อมูลจะแตกต่างกันและเป็นไปตามปัจจัยต่างๆ
การยืนยันตัวตนช่วยให้ผู้ใช้สามารถเข้าสู่ระบบแอพบนมือถือหรือบนเว็บและสร้างบัญชีได้โดยใช้ข้อมูลประจำตัวของตนบน Facebook ผู้ใช้จึงไม่จำเป็นต้องสร้างหรือจดจำรหัสผ่านแยกกัน
เมื่อแอพของคุณใช้การเข้าสู่ระบบด้วย Facebook เพื่อยืนยันตัวตนของผู้ใช้ แอพดังกล่าวจะได้รับโทเค็นการเข้าถึงผู้ใช้ หากแอพของคุณใช้ Facebook SDK อย่างใดอย่างหนึ่ง โทเค็นนี้จะมีอายุประมาณ 60 วัน แต่ SDK จะรีเฟรชโทเค็นโดยอัตโนมัติเมื่อใดก็ตามที่ผู้ใช้ได้เข้ามาใช้แอพของคุณ ดังนั้น โทเค็นดังกล่าวจึงจะหมดอายุลงหลังผ่านไป 60 วันนับตั้งแต่ที่ใช้งานครั้งล่าสุด หากแอพของคุณไม่ได้ใช้ Facebook SDK คุณจำเป็นต้องใส่โค้ดที่จะรีเฟรชโทเค็นของผู้ใช้ด้วยตนเอง หากโทเค็นการเข้าถึงผู้ใช้หมดอายุลง แอพของคุณจะต้องกำหนดให้ผู้ใช้เข้าสู่ขั้นตอนการเข้าสู่ระบบอีกครั้ง
การเข้าสู่ระบบด้วย Facebook ยังช่วยให้คุณสามารถขอสิทธิ์การอนุญาตเมื่อผู้ใช้เข้าสู่ระบบแอพของคุณได้อีกด้วย เมื่อผู้ใช้ให้สิทธิ์การอนุญาตเหล่านี้ แอพของคุณจะเข้าถึงข้อมูลผู้ใช้ในรายการต่างๆ ได้ เช่น แอพของคุณจะสามารถเข้าถึงชื่อและรูปโปรไฟล์ของผู้ใช้ได้
หากแอพขอสิทธิ์การอนุญาต เรามักจำเป็นต้องกำหนดให้นำแอพเข้ารับการตรวจสอบแอพ เพื่อให้ Facebook มั่นใจได้ว่าจะไม่มีการนำข้อมูลไปใช้ในทางที่ผิด แอพของคุณสามารถขอชื่อและรูปภาพ (ช่องโปรไฟล์เริ่มต้น) รวมถึงอีเมลของผู้ใช้ได้โดยไม่ต้องผ่านการตรวจสอบแอพ แต่สิทธิ์การอนุญาตอื่นๆ ทั้งหมดจะต้องมีการตรวจสอบ โปรดดูรายการสิทธิ์การอนุญาตต่างๆ รวมถึงสิทธิ์การอนุญาตที่ต้องมีการตรวจสอบแอพที่ข้อมูลอ้างอิงเกี่ยวกับสิทธิ์การอนุญาต
ระยะเวลาหมดอายุสำหรับสิทธิ์การเข้าถึงข้อมูลคือ 90 วัน โดยขึ้นอยู่กับเวลาใช้งานครั้งล่าสุดของผู้ใช้ เมื่อช่วงเวลา 90 วันนี้สิ้นสุดลง ผู้ใช้จะยังคงเข้าถึงแอพของคุณได้อยู่ กล่าวคือ ผู้ใช้จะยังคงได้รับการยืนยันตัวตน แต่แอพของคุณจะไม่สามารถเข้าถึงข้อมูลของผู้ใช้เหล่านั้น หากต้องการให้เข้าถึงข้อมูลได้อีกครั้ง แอพของคุณจะต้องขอให้ผู้ใช้มอบสิทธิ์การอนุญาตให้แก่แอพอีกครั้ง
ในการขอผู้ใช้มอบสิทธิ์อีกครั้งด้วย Facebook SDK สำหรับ Android หรือ Facebook SDK สำหรับ iOS ให้เรียกใช้ reauthorizeDataAccess()
ใน LoginManager
ในกรณีที่เป็น Facebook SDK สำหรับ JavaScript ให้ใช้ auth_type: 'reauthorize'
FB.login(function(response) { // Original FB.login code }, { auth_type: 'reauthorize' })
ให้ทำการเรียกใช้ด้วย auth_type=reauthorize
สำหรับเว็บ
สิทธิ์การอนุญาตต่อไปนี้จะไม่มีวันหมดอายุ
ads_read
ads_management
business_management
configure_page_transactions
pages_manage_ads
pages_manage_cta
pages_manage_instant_articles
pages_manage_engagement
pages_manage_metadata
pages_manage_posts
pages_messaging
pages_read_engagement
pages_read_user_content
pages_show_list
read_audience_network_insights
read_insights
เมื่อใช้ Android SDK และ iOS SDK คุณสามารถเรียกดูเวลาที่สิทธิ์การเข้าถึงข้อมูลของผู้ใช้จะหมดอายุได้โดยการเรียกใช้ dataAccessExpirationTime
บนอ็อบเจ็กต์โทเค็นการเข้าถึง วิธีนี้จะแสดงวันที่ซึ่งระบุว่าสิทธิ์การเข้าถึงข้อมูลจะหมดอายุลงเมื่อใด
คุณยังสามารถทดสอบว่าสิทธิ์การเข้าถึงข้อมูลของผู้ใช้หมดอายุแล้วหรือไม่ได้อีกด้วย โดยการเรียกใช้ isDataAccessExpired
ซึ่งจะแสดงค่าแบบบูลีนกลับมา
ในฝั่งเซิร์ฟเวอร์ คุณสามารถเรียกดูข้อมูลนี้ได้จากตำแหน่งข้อมูล debug_token
ในกรณีที่เป็นเว็บ คุณสามารถดูเวลาหมดอายุได้ใน payload: data_access_expiration_time
{ status: 'connected', authResponse: { accessToken: '...', expiresIn:'...', reauthorize_required_in:'...', data_access_expiration_time: '...', signedRequest:'...', userID:'...' } }
หากแอพของคุณไม่ใช้สิทธิ์การอนุญาตเป็นเวลา 90 วัน สิทธิ์การอนุญาตนั้นก็จะหมดอายุลง ไม่ว่าผู้ใช้จะใช้งานครั้งล่าสุดเมื่อใดก็ตาม ซึ่งจะเป็นเช่นนี้แม้ว่าสิทธิ์การอนุญาตดังกล่าวจะได้รับการอนุมัติผ่านการตรวจสอบแอพก็ตาม