Poniższy kod inicjuje api facebooka:

  1. $().ready(function(){
  2. window.fbAsyncInit = function() {
  3. FB.init({
  4. appId : '5252525252525252',
  5. session : <?php echo json_encode($session); ?>, // don't refetch the session when PHP already has it
  6. status : true, // check login status
  7. cookie : true, // enable cookies to allow the server to access the session
  8. xfbml : true // parse XFBML
  9. });
  10.  
  11. };
  12.  
  13.  
  14. init_fb();
  15. });
  16.  
  17. function init_fb(){
  18. var e = document.createElement('script');
  19. e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
  20. e.async = true;
  21. document.getElementById('fb-root').appendChild(e);
  22. }


Przebieg wydarzeń wygląda następująco:
1. Loguje się za pomocą poniższego kodu:
  1. function fb_login(){
  2. FB.login(function(response) { // daje znac fb ,ze loguje sie
  3. if (response.session) {
  4. if (response.perms) {
  5. // user is logged in and granted some permissions.
  6. // perms is a comma separated list of granted permissions
  7. } else {
  8. // user is logged in, but did not grant any permissions
  9. }
  10.  
  11. location.href = strBaseUrl+"index/fb_login"; // a tu nastepuje faktyczne logowanie do serwisu lub rejestracja
  12. } else {
  13. // user is not logged in
  14. }
  15. }, {perms:'email'});
  16. }

2. Zostaje poprawnie zalogowany do serwisu.
3. Wylogowywuję się za pomocą poniższego kodu:
  1.  
  2. function fb_logout(){
  3. FB.logout(function(response) { // tu daje znac fb ,ze sie wylogowalem,
  4. location.href = strBaseUrl+"index/wyloguj"; // a tutaj jest wlasciwe wylogowanie z serwisu,
  5. });
  6. }

4. I teraz próbując się zalogować na nowo, nie mogę - otwiera się dialog fb do logowania po czym znika i przekierowuje mnie na główną nie logując.
5. Musze wyczyścić ciastka żeby móc się zalogować jak na początku.

Gdzie jest lub może być błąd?