驗證讓用戶可使用其 Facebook 憑證登入您的流動應用程式或網頁版應用程式,並建立帳戶,而無需單獨建立或記住密碼。
應用程式使用 Facebook 登入驗證用戶時,會收到用戶存取憑證。如果應用程式使用其中一種 Facebook SDK,則此憑證將維持有效大約 60 天。然而,只要該用戶使用應用程式,SDK 就會自動重新整理此憑證,因此這些憑證會在最後一次使用之後 60 天過期。如果應用程式未使用 Facebook SDK,則您需要手動加入用於重新整理用戶憑證的程式碼。如果用戶存取憑證過期,則應用程式必須讓用戶再次完成登入流程。
Facebook 登入亦讓您可以在用戶登入應用程式時要求取得權限。如果用戶授予這些權限,則應用程式可以利用這些權限存取用戶資料內容。例如,應用程式可以存取用戶的姓名和個人資料相片。
如果應用程式要求取得權限,該應用程式通常需要通過應用程式審查,這樣 Facebook 才能確保資料不會遭到濫用。應用程式可以要求取得用戶的姓名和相片(預設個人檔案欄位)以及電郵,而無需完成應用程式審查,但所有其他權限都需要審查。如需查看權限清單並了解需要為哪些權限完成應用程式審查,請參閱權限參考資料。
資料存取權的有效期為由用戶最後上線時間起計的 90 天。此 90 天期限過期後,用戶仍然可以存取應用程式,即系統仍會將用戶視為已通過驗證,但應用程式無法存取用戶資料。如需重新取得資料存取權,應用程式必須要求用戶重新授予權限。
如需使用 Facebook Android SDK 或 Facebook iOS SDK 要求重新授權,請對 LoginManager
呼叫 reauthorizeDataAccess()
。
如果使用 Facebook JavaScript SDK,則請使用 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 天內未使用某項權限,則該權限將過期。即使該權限已通過應用程式審查的批准亦不例外。