Nedochází k odhlášení současně při odhlašování od Facebooku

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
joe
Člen | 313
+
0
-

Ahoj,

mám celkem obecný dotaz a nemůžu přijít na to, proč se tak děje.

V Auth presenteru mám klasickou metodu na odhlášení s kódem:

$this->user->logout(TRUE);
$this->flashMessage('Odhlášen', 'success');
$this->redirect(':Front:Home:');

Samozřejmě funguje, ale jakmile je někdo přihlášený přes Facebook, měl bych ho odhlásit při odhlášení z mé aplikace (použití PHP SDK):

$facebook = new \Facebook(array(...));
$this->user->logout(TRUE);
$this->redirectUrl(
	$facebook->getLogoutUrl(array(
		'next' => $this->link('//:Front:Home:')
	))
);

což způsobí to, že mě odhlásí z FB a přesměruje na :Front:Home:, kde jsem ale pořád přihlášený. Netuší někdo proč? Odhlášení proběhne až při načtení jakékoli další stránky.

joe
Člen | 313
+
0
-

Tak řešením bude asi přidat náhodný řetězec do adresy, vypadá to, že se stránka po přesměrování bere z cache prohlížeče.
Píšu asi, protože jak jsem si s tím teď hrál, v Opeře mi přesměrování přestalo fungovat úplně.

joe
Člen | 313
+
0
-

Ideální je také přiložit flash zprávičku. V Opeře se mi ale na takovou adresu nepřesměruje – a to je možná způsobené, že to testuju na nereálných (devel) URL adresách

$this->flashMessage('Odhlášen', 'success');
$this->user->logout(TRUE);

$this->redirectUrl(
	$facebook->getLogoutUrl(array(
		'next' => $this->link('//:Front:Home:', array(self::FLASH_KEY => $this->params[self::FLASH_KEY]))
	// FIXME v Opere to funguje jen bez parametru ??!!
	// 'next' => $this->link('//:Front:Home:')
	))
);

Editoval joe (16. 8. 2011 16:58)