Вы используете Facebook PHP SDK правильно.
В фейсбуке php sdk при звонке
$ facebook-> getUser () метод сначала проверяет, является ли он закрытой переменной, если пользователь уже установил или нет здесь метод
* Get the UID of the connected user, or 0
* if the Facebook user is not connected.
*
* @return string the UID if available.
*/
public function getUser() {
if ($this->user !== null) {
// we've already determined this and cached the value.
return $this->user;
}
return $this->user = $this->getUserFromAvailableData();
}
так что если вы звоните в первый раз, конечно user
переменная null
так что теперь он вызывает getUserFromAvailableData (); Метод
/** * Retrieve the signed request, either from a request parameter or,
* if not present, from a cookie.
*
* @return string the signed request, if available, or null otherwise.
*/
public function getSignedRequest() {
if (!$this->signedRequest) {
if (isset($_REQUEST['signed_request'])) {
$this->signedRequest = $this->parseSignedRequest(
$_REQUEST['signed_request']);
} else if (isset($_COOKIE[$this->getSignedRequestCookieName()])) {
$this->signedRequest = $this->parseSignedRequest(
$_COOKIE[$this->getSignedRequestCookieName()]);
}
}
return $this->signedRequest;
}
и getSignedRequestCookieName()
возврат
protected function getSignedRequestCookieName() {
return 'fbsr_'.$this->getAppId();
}
так что теперь getSignedRequest()
функция сначала проверяет, установлен подписанный запрос или нет, если не установлен получает подписанный запрос от Cookie
поэтому, если, наконец, если вы не хотите получать предыдущий ID пользователя, просто удалите cookie с именем ''fbsr_'+YourApplicationID'