从LinkedIn API注销登录

24

我曾经使用过LinkedIn API,并需要关于当我在我的应用程序中点击注销时如何从Linkedin API注销的指导。我尝试了以下代码:

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()来销毁浏览器中的会话。

最后,我尝试了从这个问题在Stack Overflow上得到的答案,但是没有获得正确的解决方案。有人能告诉我解决方法吗?


你参考了这个吗?(http://developer.linkedin.com/documents/inauth-inevent-and-inui) - Pankit Kapadia
我看到你的DOM查询不正确,基本上它无法附加onclick事件。当您按ID查询DOM元素时,需要添加一个哈希#:$('#logout-link').click(...) - Omid Monshizadeh
8个回答

1

请确保您已经包含了

<script type="text/javascript" src="http://platform.linkedin.com/in.js"></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>

0

在调用IN.User.logout()之前,您需要加载LinkedIn JavaScript平台,您应该在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
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

这里似乎有两个不同的问题。除非您调用他们的函数,否则无法从服务器端脚本注销 LinkedIn。当您着陆于 logout.php时,应该在页面顶部使用 session_destroy()。确保 logout.php 上没有任何 session_start()。


0

看起来你的 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";
}

我已经通过在该方法中放置alert()来检查,弹出了警报。 - MUTHURAJ
@MUTHURAJ 看看修改后的代码,尝试在 isAuthorized() 函数的 if 条件语句内使用 alert(),以查看 IN 对象是否实际存在并且用户是否已通过领英授权,希望这能起作用。 - Sudhir Bastakoti

0
我认为在你的JavaScript执行之前,你被重定向了,所以尝试这种方式? JavaScript代码:
function closeSession(){
    IN.User.logout();
    location.href="logout.php";
}

HTML 代码:

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

告诉我发生了什么,函数的第一行是否执行,页面是否重定向到 logout.php - Dexter

-3
在代码中使用session_destroy()。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接