【问题标题】:Logout from LinkedIn API从 LinkedIn API 注销
【发布时间】:2012-12-05 06:07:05
【问题描述】:

我使用过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 获得的this question 的答案。我没有得到任何正确的解决方案。谁能告诉我解决办法?

【问题讨论】:

  • 我可以看到您的 DOM 查询不正确,基本上它无法附加 onclick 事件。当您通过 id 查询 DOM 元素时,您需要添加一个哈希 #:$('#logout-link').click(...)

标签: javascript php linkedin linkedin-api


【解决方案1】:

您的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 查看编辑后的代码,如果代码中 isAuthorized() 的条件,请尝试 alert()'ing 以查看 IN 对象是否实际存在并且用户是否已通过linkedin 实际授权,希望有效
【解决方案2】:

我认为你在你的 javascript 被执行之前被重定向了,所以试试这个方法吗? JavaScript 代码:

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

HTML 代码:

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

【讨论】:

  • 告诉我发生了什么,第一行函数是否执行,页面是否重定向到logout.php
【解决方案3】:

确保你有包含

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

在您的主页上,即您要退出的位置。

【讨论】:

    【解决方案4】:
    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>
    

    【讨论】:

      【解决方案5】:

      这里似乎有 2 个不同的问题。除非您调用它们的函数,否则您无法从服务器端脚本中注销链接。当你登陆 logout.php 你应该有你的 session_destroy();在页面顶部。确保 logout.php 上没有 session_start()

      【讨论】:

        【解决方案6】:

        在代码中使用 session_destroy()。

        【讨论】:

          【解决方案7】:

          您需要在尝试调用 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>
          

          【讨论】:

            【解决方案8】:
            <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>
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2013-03-04
              • 1970-01-01
              • 2012-08-19
              • 1970-01-01
              • 2023-01-08
              • 1970-01-01
              • 1970-01-01
              • 2010-12-29
              相关资源
              最近更新 更多