DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   PHP (http://www.devprotalk.com/forumdisplay.php?f=9)
-   -   FB.logout() (http://www.devprotalk.com/showthread.php?t=10503)

kickloop 06. 11. 2011. 01:35

FB.logout()
 
Ima li neko iskustva? Kako da izlogujem korisnika sa sajta ako se logovao sa FB nalogom?

onclick="FB.logout(function(response)}); ne radi.

nn.nn 06. 11. 2011. 08:23

Možda nešto poput "session = nil"?

Miroslav Ćurčić 06. 11. 2011. 11:47

FB.logout će izlogovati posetioca sa FB-a a to pretpostavljam nije ono što ti treba.

centaur 06. 11. 2011. 14:57

^To i jeste ono što mu treba, samo nakon toga treba da se odradi reload stranice kako bi sistem za login mogao da prepozna da li je user logovan ili nije preko FB-a.

BTW, ja lično za logout usera koji je sa fb-a koristim getLogoutUrl() metod iz facebook php SDK.

kickloop 06. 11. 2011. 16:38

Mislim da ne postoji način da izloguješ korisnika samo sa sajta a ne i sa FB ako se tako logovao. Dakle, ono što mi treba je baš to što @centaur kaže. Moram da izlogujem korisnika i sa FB pa je samim tim izlogovan i sa sajta.

Probaću i ovo getLogoutUrl() a ako neko ima još neke ideje bilo bi sjajno da ih čujem. Hvala svima.

centaur 06. 11. 2011. 17:01

^moguće je, što da ne, ali uz dosta žongliranja u login sistemu na samom sajtu.

webarto 06. 11. 2011. 17:56

Više bi ti odgovaralo JS umjesto PHP rješenje? (pošto je tema u PHP)

kickloop 06. 11. 2011. 20:42

Mislim da mora JS, svakako. Ako je pogrešna tema neka je nadležni premeste.

Miroslav Ćurčić 07. 11. 2011. 17:14

:confused:Ako mora tako onda bih ja brzo popizdeo na taj sajt.

Postoji nekoliko sajtova na kojima sam stalno ulogovan (FB,DTP,ES,...) jer ih često obilazim, i ako bih se ulogovao kod tebe i posle logout-a morao ručno da se logujem na FB verovatno se ne bih više vraćao. Loš UX.

kickloop 07. 11. 2011. 18:27

Uh bre. Nisi još ni došao na sajt a već si popizdeo :)

Ma nisam ja rekao da mora nego nisam našao drugo rešenje do sad a i ovo koje sam našao je kilavo i često ne radi.

Zato sam, između ostalog, i pitao ovde za pomoć i savet :)

nn.nn 08. 11. 2011. 09:09

Citat:

Originalno napisao Miroslav Ćurčić (Napišite 102742)
:confused:Ako mora tako onda bih ja brzo popizdeo na taj sajt.

Izgleda da FB policy (tačka 6) nameće da, ako hoćeš da izloguješ korisnika iz svoje aplikacije, moraš da ga izloguješ i sa FB-a. E, da, all your base are belong to us. ;)

@kickloop Da li si video ovo?

martinluter 08. 11. 2011. 11:12

Mozda je ovo neko resenje:

HTML kôd:

<!doctype html>
<html xmlns:fb="http://www.facebook.com/2008/fbml">
 
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <title>Connect JavaScript - jQuery Login Example</title>
  </head>
  <body>
    <h1>Connect JavaScript - jQuery Login Example</h1>
    <div>
      <button id="login">Login</button>
     
   
      <button id="disconnect">Disconnect</button>
    </div>
    <div id="user-info" style="display: none;"></div>

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>

    <div id="fb-root"></div>
    <script src="http://connect.facebook.net/en_US/all.js"></script>
    <script>
      // initialize the library with the API key
      FB.init({ apiKey: 'API_KEY' });

      // fetch the status on load
    // FB.getLoginStatus(handleSessionResponse);

      $('#login').bind('click', function() {
        FB.login(handleSessionResponse);
      });

      $('#logout').bind('click', function() {
        FB.logout(handleSessionResponse);
     
      });

      $('#disconnect').bind('click', function() {
        FB.api({ method: 'Auth.revokeAuthorization' }, function(response) {
          clearDisplay();
        });
      });

      // no user, clear display
      function clearDisplay() {
        $('#user-info').hide('fast');
      }

      // handle a session response from any of the auth related calls
      function handleSessionResponse(response) {
        // if we dont have a session, just hide the user info
        if (!response.session) {
          clearDisplay();
         
          return;
        }

        // if we have a session, query for the user's profile picture and name
        FB.api(
          {
            method: 'fql.query',
            query: 'SELECT pic, name FROM profile WHERE id=' + FB.getSession().uid
          },
          function(response) {
            var user = response[0];
         
            $('#user-info').html('<img src="' + user.pic + '"><br>'  + user.id).show('fast');
          }
        );
      }
    </script>
  </body>
</html>


kickloop 08. 11. 2011. 14:06

Hvala svima na savetima i pomoći. FB forum, dokumentacija čak i razni primeri, tutoriali i ostalo što može da se izgugla ne vrede ništa jer FB toliko često menja sve da je jako teško ispratiti šta radi a šta ne, šta je aktuelno a šta ne.

Nekako sam rešio logout (koji korisnika izloguje i sa FB) ali postoji novi problem. U slučaju da se korisnik loguje na FB nakon toga pa se vrati na sajt automatski će biti ulogovan iako sam stavio "status: false". S.O.S. ako neko zna lek

Nemanja Avramović 09. 11. 2011. 17:56

Više puta sam naleteo na isti problem (bilo da koristim JS ili PHP SDK) i još uvek nisam našao rešenje :(

Jednostavno, FB.logout te izloguje sa FB-a, ali aplikacija (na fb) je i dalje povezana sa profilom, tako da, kad se uloguješ (na fb), aplikacija te re-autorizuje na sajtu i ponovo si ulogovan sa istim profilom... :/

Peca 09. 11. 2011. 18:10

eto, dodjoh i ja upravo do istog problema.
ni brisanje fbs_ cookie-a ne pomaze [isti se opet pojavi posle refresha, javascript ga set-uje].
jedino sto mi pada na pamet je da set-ujem dodatni cookie, nazovimo ga 'logged_out'... pa po tom cookie-u da znamo da je korisnik izlogovan...
a kad korisnik hoce opet da se uloguje - samo obrisemo taj 'logged_out' cookie [pa korisnik onda biva automatski logovan]....

centaur 09. 11. 2011. 20:39

^to je jedini nacin.

Peca 10. 11. 2011. 01:38

:/
tako sam na kraju i uradio... eno ga 'proof of concept' na mom sajtu za Igrice [link u potpisu].
fejk logout :)

mali trik je taj sto prvo proverim postoji li 'fbs_' cookie [to mi je orijentacija da znam da li je uopste ulogovan preko FB], a zatim proverim da li postoji 'logged_out' cookie.
ako oba postoje - smatram da je odlogovan - i uopste ne pokusavam da skinem podatke sa https://graph.facebook.com/me?access_token... [ne cimam im server badava]


Vreme je GMT +2. Trenutno vreme je 00:33.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.