驗證讓用戶能夠登入您的行動或網路應用程式,並使用他們的 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 和 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 天內沒有使用權限,則該權限會到期。即使權限已通過應用程式審查,在此情況下一樣會過期。