示例#1
0
 private static function loginFromJs2($fb_graph_user, $accessToken)
 {
     $fb_email = $fb_graph_user->getEmail();
     IubarFattureApp::getInstance()->log->debug("Calling LoginModel::loginExternal()");
     $login_successful = LoginModel::loginExternal($fb_email, UserModel::PROVIDER_TYPE_FB);
     // check login status: if true, then redirect user to user/index, if false, then to login form again
     if ($login_successful) {
         IubarFattureApp::getInstance()->log->debug("Login successfully");
         if (self::FORCE_TOKEN_REFRESH_AFTER_LOGIN) {
             // Scambio l'access token con uno a lunga durata, lo salvo nel db e aggiorno l'oggeto Facebook.
             IubarFattureApp::getInstance()->log->debug("Exchange access short live token '" . $accessToken . "' for a long live one");
             $accessToken = self::getExtendAccessToken($accessToken);
             // ask FB for a long-lived token
             IubarFattureApp::getInstance()->log->debug("New log live token: '" . $accessToken . "'");
             Session::set(Session::FACEBOOK_ACCESS_TOKEN, (string) $accessToken);
             // qui il cast è obbligatorio perchè $accessToken è un oggetto
         }
         $scope = null;
         // TODO:
         $expire_date = null;
         // TODO:
         ExternalModel::writeAccessTokenToDb($fb_email, $accessToken, $scope, $expire_date, UserModel::PROVIDER_TYPE_FB);
         self::getFb()->setDefaultAccessToken($accessToken);
         $fb_id = $fb_graph_user->getId();
         $fb_display = $fb_graph_user->getName();
         $fb_pic_url = $fb_graph_user->getPicture()->getUrl();
         Session::set(Session::FACEBOOK_DISPLAY_NAME, $fb_display);
         Session::set(Session::FACEBOOK_PICTURE, $fb_pic_url);
         Session::set(Session::FACEBOOK_ID, $fb_id);
     }
     return $login_successful;
 }