Autenticação e acesso a dados

O Login do Facebook oferece dois benefícios principais: a autenticação e o acesso a dados. Esses recursos não se excluem mutuamente. Você pode usar o Login do Facebook para autenticar pessoas sem acessar os dados delas. Nesse caso, não é preciso solicitar permissões nem passar pela análise do app.

Tanto a autenticação quando o acesso a dados têm um período de validade finito. No entanto, os períodos de expiração para a autenticação e o acesso a dados são diferentes e dependem de fatores distintos.

Autenticação

A autenticação permite que as pessoas entrem no seu app para celular ou web e criem uma conta usando as próprias credenciais do Facebook. Elas não precisam criar nem memorizar uma senha específica.

Expiração da autenticação

Quando o seu app usa o Login do Facebook para autenticar alguém, ele recebe um token de acesso do usuário. Caso o seu app use um dos SDKs do Facebook, esse token será válido por aproximadamente 60 dias. No entanto, os SDKs atualizarão automaticamente o token sempre que essa pessoa usar o seu app. Assim, o token expirará 60 dias após o último uso. Caso o seu app não use os SDKs do Facebook, você precisará incluir um código que atualize o token do usuário manualmente. Se o token de acesso expirar, o app deverá colocar o usuário no fluxo de login novamente.

Acesso a dados

O Login do Facebook também permite que você solicite permissões quando as pessoas entram no seu app. Se concedidas, essas permissões darão ao seu app acesso a itens de dados do usuário. Por exemplo, o app pode acessar o nome e a foto de perfil de um usuário.

Em geral, a solicitação de permissões exige a conclusão da análise do app para que o Facebook possa garantir que os dados não sejam usados indevidamente. É possível solicitar o nome e a foto de uma pessoa (os campos de perfil padrão), além do email, sem passar pela análise do app, mas todas as outras permissões exigirão esse processo de verificação. Para ver listas de permissões e entender quando a análise do app é necessária, consulte a Referência de permissões.

Expiração do acesso a dados

O período de expiração para o acesso a dados é de 90 dias, com base na data da última sessão ativa do usuário. Depois disso, o usuário ainda poderá acessar o seu app (ou seja, ele ainda estará autenticado), mas o app não poderá acessar os dados dele. Para recuperar o acesso aos dados, será preciso solicitar ao usuário uma nova autorização das permissões.

Para solicitar uma nova autorização com o SDK do Facebook para Android ou o SDK do Facebook para iOS, faça uma chamada a reauthorizeDataAccess() no LoginManager.

Com o SDK do Facebook para JavaScript, use auth_type: 'reauthorize'.

FB.login(function(response) {
  // Original FB.login code
}, { auth_type: 'reauthorize' })

Para a web, faça a chamada com auth_type=reauthorize.

As permissões a seguir não expiram:

  • 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

Como testar a expiração do acesso a dados do usuário

Com os SDKs para Android e iOS, você pode descobrir quando o acesso do seu app a dados do usuário expirará fazendo uma chamada a dataAccessExpirationTime no objeto do token de acesso. Esse método retorna uma data, que indica quando o acesso aos dados expirará.

Você também pode testar se o acesso aos dados do usuário expirou fazendo uma chamada a isDataAccessExpired, que retornará um booliano.

Do lado do servidor, você pode buscar essas informações no ponto de extremidade debug_token.

Na web, é possível ver o tempo de expiração em payload: data_access_expiration_time.

{
  status: 'connected',
  authResponse: {
    accessToken: '...',
    expiresIn:'...',
    reauthorize_required_in:'...',
    data_access_expiration_time: '...',
    signedRequest:'...',
    userID:'...'
  }
}

Expiração da permissão

Independentemente da última sessão ativa do usuário, se o app não usar uma permissão por 90 dias, ela expirará. Isso também acontece nos casos em que a permissão foi aprovada na análise do app.