2012-12-18 13 views
23

Ich habe mit LinkedIn API gearbeitet und brauche Anleitung zum Abmelden von Linkedin API, sobald ich auf Abmelden in meiner Anwendung klicke. Ich habe den folgenden Code versucht:Abmelden von LinkedIn API

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

Ich habe auch versucht:

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

ich durch die Sitzung in einem Browser zu zerstören versucht Schließlich session_destroy()

nennen, habe ich versucht, die Antwort, die ich bekam von Stack Overflow für this question. Ich habe keine richtige Lösung gefunden. Kann mir jemand die Lösung sagen?

+0

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

+0

ich, dass Ihre DOM-Abfrage nicht richtig sehen können, und es ist im Grunde nicht kann das onclick-Ereignis anhängen. Sie müssen eine Hash-Nummer hinzufügen, wenn Sie ein DOM-Element nach der ID abfragen: $ ('# logout-link'). Click (...) –

Antwort

0

Scheint Ihr onclick heißt nicht werden, versuchen zu tun:

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

ODER

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

Und 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

Ich habe das überprüft, indem ich alert() gesetzt habe; In diese Methode wurde Alert angezeigt. – MUTHURAJ

+0

@MUTHURAJ sehen Sie den bearbeiteten Code, versuchen Sie alert() 'innerhalb der Bedingung von isAuthorized() im Code, um zu sehen, ob das IN-Objekt tatsächlich vorhanden und Benutzer ist tatsächlich mit Linkedin autorisiert, hoffe, dass –

0

Ich glaube, Sie werden umgeleitet, bevor Sie Javascript ausgeführt wird, Also versuche es so? JavaScript-Code:

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

HTML-Code:

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

Ich habe Ihre Lösung jetzt versucht aber habe es nicht richtig gemacht – MUTHURAJ

+0

Erzähl mir, was passiert ist, wird die erste Zeile der Funktion ausgeführt oder nicht, ist die Seite auf 'logout.php' umgeleitet – Dexter

1

Vergewissern Sie sich, dass Sie enthalten haben

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

auf Ihrer Homepage, das heißt, wo Sie sich abmelden.

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

Es scheint hier 2 verschiedene Probleme zu geben. Sie können sich nicht von Ihrem serverseitigen Skript abmelden, wenn Sie ihre Funktion aufrufen. Wenn Sie auf logout.php landen, sollten Sie Ihre session_destroy(); oben auf der Seite. Stellen Sie sicher, dass in logout.php kein session_start() vorhanden ist.

-2

Verwenden Sie session_destroy() im Code.

0

Sie müssen die LinkedIn JavaScript-Plattform laden, bevor Sie versuchen, IN.User.logout() aufzurufen. Sie sollten den Code erst ausführen, nachdem die JavaScript-Bibliothek vollständig geladen wurde.

<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> 
Verwandte Themen