Facebook PHP SDK lidando com tokens de acesso

Eu tenho rastejado em torno de muitas respostas diferentes, mas ainda estou um pouco confuso com como eu deveria estar lidando com o facebooktokens de acesso. Um dos principais problemas que estou tendo é devido a quais informações estão sendo armazenadas no meu navegador. Por exemplo, eu faço logon no aplicativo, o token expira, não consigo fazer logon novamente, a menos que eu limpe os cookies / configurações do aplicativo no navegador.

Eu tropecei neste tópico:Como estender a validade do token de acesso desde o descarte offline_access

Que me mostrou como criar um token de acesso estendido através do php.

Minhas perguntas são:

1 Preciso armazenar o token de acesso em qualquer lugar?

2 O que acontece quando o token de acesso expira ou se torna inválido? No momento, meu aplicativo simplesmente pára de funcionar quando o acesso de curto prazo expira.

3 Existe uma maneira que eu deveria estar lidando com eles para verificar se eles expiraram? Estou usando o php sdk e basicamente usei o padrão if ($ user) ... Assim:

require 'sdk/src/facebook.php';

  $facebook = new Facebook(array(
  'appId'  => 'XXXXXXXXXXXXXXXXXXXXX',
  'secret' => 'XXXXXXXXXXXXXXXXXXXXX',
));

  $user = $facebook->getUser();

  if( $user ){
    try{
        $user_profile = $facebook->api('/me');
    } catch (FacebookApiException $e) {
    error_log($e);
    $user = null;
    }
  }

  if (!$user){

    $params = array(
    'scope' => 'email',
    );

    $loginUrl = $facebook->getLoginUrl( $params );
        echo '<script type="text/javascript"> 
                window.open("'. $loginUrl .'", "_self"); 
                </script>';
                exit;

 } 
     if( $user ){

    $access_token = $facebook->getExtendedAccessToken();     

     $get_user_json = "https://graph.facebook.com/me?access_token=" 
       . $access_token;

// Rest of my code here...
}
Há mais alguma coisa que eu deveria estar fazendo para lidar com fichas?

. Devo estar passando o token de acesso entre as páginas ou é ok chamá-lo novamente no topo de cada página assim:

$facebook = new Facebook(array(
  'appId'  => 'XXXXXXXXXXXX',
  'secret' => 'XXXXXXXXXXXX',
  'redirect_uri' => 'http://localhost:8000/',
));
     $token = $facebook->getExtendedAccessToken();

questionAnswers(2)

yourAnswerToTheQuestion