2012-12-18 19 views
23

Pracowałem z LinkedIn API i potrzebuję wskazówek dotyczących wylogowywania się z API Linkedin po kliknięciu Logout w mojej aplikacji. Próbowałem następujący kod:Wylogowanie z LinkedIn API

function closeSession(){ 
    IN.User.logout(); 
} 
<a href="logout.php" class="myButton" onclick="closeSession()" id="logout-link">Logout In LinkedIn</a> 

Próbowałem również:

$('logout-link').click(function() { 
    IN.Event.on(IN,'logout', function() { 
     window.location.href = [site-logout-url]; 
    }); 
    IN.User.logout(); 
}); 

próbowałem zniszczyć sesji w przeglądarce wywołując session_destroy()

Wreszcie, próbowałem odpowiedź dostałem z Stack Overflow dla this question. Nie znalazłem odpowiedniego rozwiązania. Czy ktoś może mi powiedzieć rozwiązanie?

+0

[Reffered jest?] (Http://developer.linkedin.com/documents/inauth-inevent-and-inui) –

+0

widzę, że zapytanie DOM nie jest prawidłowa iw zasadzie to nie jest możliwość dołączenia zdarzenia onclick. Musisz dodać wartość mieszającą #, gdy kwerendujesz element DOM o identyfikator: $ ('# logout-link'). Kliknij (...) –

Odpowiedz

0

Wydaje swój onclick nie jest wezwaniem, spróbuj robić:

function closeSession(){ 
    IN.User.logout(); 
    return true; 
} 
<a href="logout.php" class="myButton" onclick="return closeSession();" id="logout-link">Logout In LinkedIn</a> 

LUB

<a href="#" class="myButton" onclick="closeSession()" id="logout-link"> 
    Logout In LinkedIn 
</a> 

i JS

function closeSession() { 
    if (typeof IN === 'object' && typeof IN.User === 'object' && IN.User.isAuthorized()) { 
    //user logged in linkedin 
    //call linkedin logout with websites logout function as callback 
    alert("I m inside linkedin object check.."); //do you see this 
    IN.User.logout(logout); 
    } 
    else { 
    logout(); 
    } 
} 
function logout() { 
    window.location.href = "URL_TO_YOUR_LOGOUT.PHP"; 
} 
+0

Sprawdziłem to, umieszczając alert(); w tej metodzie wyświetlany był Alert. – MUTHURAJ

+0

@MUTHURAJ zobacz edytowany kod, spróbuj alert() wewnątrz, jeśli warunek isAuthorized() w kodzie, aby sprawdzić, czy obiekt IN faktycznie istnieje, a użytkownik jest rzeczywiście autoryzowany z linkedin, mam nadzieję, że działa –

0

myślę, że są przekierowywane przed JavaScript zostanie wykonany, więc spróbuj w ten sposób? kod JavaScript:

function closeSession(){ 
    IN.User.logout(); 
    location.href="logout.php"; 
} 

HTML kod:

<span style="cursor:pointer" onclick="closeSession()">Logout In LinkedIn</span> 
+0

Próbowałem Twojego rozwiązania teraz ale nie zrobiłem tego dobrze – MUTHURAJ

+0

powiedz mi, co się stało, czy pierwsza linia funkcji została wykonana, czy nie, to strona przekierowana do 'logout.php' – Dexter

1

Upewnij się, że masz to

<script type="text/javascript" src="http://platform.linkedin.com/in.js"></script> 

na stronie głównej, to znaczy gdzie jesteś wylogowaniu.

0
To make it work 



<script type="text/javascript" src="http://platform.linkedin.com/in.js"> 
api_key: <?php echo sfConfig::get('app_linkedin_api_key'); ?> 
authorize: true 
</script> 
<script> 
IN.Event.on(IN, "logout", function() {onLinkedInLogout();}); 

function onLinkedInLogout(){ 
// User is logged out 
window.location.href='<?php echo url_for("@homepage");?>' 
} 
</script> 
<a href="#" onclick="IN.User.logout()"><?php echo __("Logout");?></a> 

<div class="signin"><script type="in/Login" data-onAuth="onLinkedInAuth"></script> 

<script type="text/javascript"> 

function onLinkedInAuth() { 
IN.API.Profile("me") 
.fields("id") 
.result(function(me) { 
var id = me.values[0].id; 
//Do stuff like redirect... 
}) 
} 
</script> 
0

Wydaje się, że są tutaj 2 różne problemy. Nie możesz się wylogować z skryptu po stronie serwera, chyba że zadzwonisz do ich funkcji. Po wylądowaniu na logout.php powinieneś mieć swój session_destroy(); na górze strony. Upewnij się, że nie ma żadnych session_start() na logout.php

-2

użyć session_destroy() w kodzie.

0

Musisz załadować platformę LinkedIn LinkedIn przed próbą połączenia się z IN.User.logout(), powinieneś uruchomić kod dopiero po całkowitym załadowaniu biblioteki javascript.

<script type="text/javascript" src="http://platform.linkedin.com/in.js"> 
    api_key: mykey 
    authorize: true 
    onLoad: onLoad 
</script> 

<script type="text/javascript"> 
function onLoad() { 
    try { 
    IN.User.logout(); 
    } catch (err) { 
    console.log(err); 
    } 
    location.href="index.php"; 
} 
</script> 
0
<script type="text/javascript" src="http://platform.linkedin.com/in.js"> 
api_key: mykey 
authorize: true 
onLoad: onLoad 
</script> 

      <script type="text/javascript"> 
       function onLoad() { 
        try { 
       IN.User.logout(); 
         } catch (err) { 
        console.log(err); 
          } 
        location.href="index.php"; 
        } 
        </script>