Ajax POST po přihlášení přes Facebook
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- resigo
- Člen | 20
Dobrý den,
potřeboval bych poradit jak odeslat údaje o uživateli a zárověň ho
přihlásit, po přihlášení přes FB.login. Zatím na to jdu takto a vůbec
nevím jak to rozchodit. Pokud je to hodně neohrabané, budu rád za všechny
připomínky a návrhy. Moc děkuji. :)
JS funkce volaná v fb:button onLogin
function checkLoginState() {
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
FB.api('/me', function(response) {
console.log('Successful login for: ' + response.name);
$.post({link register!}, { email: response.email, accessToken: FB.getAuthResponse()["accessToken"] });
});
}
});
}
Snippet
{snippet registerContainer}
{if $user->isLoggedIn()}
<a n:href="logout!">Odhlásit se</a>
{else}
<fb:login-button scope="public_profile,email" onlogin="checkLoginState()">
</fb:login-button>
{/if}
{/snippet}
Presenter
public function handleRegister($email, $access_token)
{
$user = $this->getUser();
$row = $this->context->userModel->userByEmail($email);
if($row)
{
$identity = $this->context->userModel->login($email, $access_token);
$user->login($identity);
if ($this->isAjax()) {
$this->invalidateControl('registerContainer');
} else {
$this->flashMessage('Jste přihlášeni...','success');
$this->redirect('this');
}
}
}