Ответ 1
Убедитесь, что у вас есть
<script type="text/javascript" src="http://platform.linkedin.com/in.js"></script>
на вашей домашней странице, то есть где вы выходите из системы.
Я работал с API LinkedIn и нуждался в указании на выход из Linkedin API, как только я нахожу Logout в своем приложении. Я пробовал следующий код:
function closeSession(){
IN.User.logout();
}
<a href="logout.php" class="myButton" onclick="closeSession()" id="logout-link">Logout In LinkedIn</a>
Я также пробовал:
$('logout-link').click(function() {
IN.Event.on(IN,'logout', function() {
window.location.href = [site-logout-url];
});
IN.User.logout();
});
Я попытался уничтожить сеанс в браузере, вызвав session_destroy()
Наконец, я попробовал ответ, полученный из Qaru для этого вопроса. Я не получил правильного решения. Может ли кто-нибудь сказать мне решение?
Убедитесь, что у вас есть
<script type="text/javascript" src="http://platform.linkedin.com/in.js"></script>
на вашей домашней странице, то есть где вы выходите из системы.
Кажется, ваш onclick
не вызывается, попробуйте сделать:
function closeSession(){
IN.User.logout();
return true;
}
<a href="logout.php" class="myButton" onclick="return closeSession();" id="logout-link">Logout In LinkedIn</a>
ИЛИ
<a href="#" class="myButton" onclick="closeSession()" id="logout-link">
Logout In LinkedIn
</a>
И 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";
}
Я думаю, что вы перенаправлены до того, как ваш javascript будет выполнен, так что попробуйте этот путь? Код JavaScript:
function closeSession(){
IN.User.logout();
location.href="logout.php";
}
Код HTML:
<span style="cursor:pointer" onclick="closeSession()">Logout In LinkedIn</span>
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>
Здесь, похоже, есть 2 разных вопроса. Вы не можете выйти из системы со своей серверной стороны script, если вы не вызываете их функцию. Когда вы приземляетесь на logout.php, у вас должен быть ваш session_destroy(); вверху страницы. Убедитесь, что session_start() отсутствует в logout.php
Вам нужно загрузить платформу JavaScript LinkedIn, прежде чем пытаться вызвать IN.User.logout(), вы должны запустить код только после полной загрузки библиотеки 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>
<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>
используйте код session_destroy() в коде.