Yammer javascript SDK注销问题

时间:2014-06-26 15:55:43

标签: yammer

我可以使用yam.platform.login成功登录,但是当我打电话

 yam.getLoginStatus(
     function (response) {
         if (response.authResponse) {
             yam.platform.logout(function (response) {
                 if (response) {
                     alert("logout success");
                 }
             })
         }
     }
 );

永远不会达到内部回调函数。人们知道发生了什么吗?

编辑:可能与问题有关的另一个奇怪的行为:在上面的注销函数调用之后,登录状态仍然是"已连接"我在Chrome中检查了yammer.com的所有Cookie都被删除了。但是,当我手动要求Chrome删除Cookie时,登录状态将返回"未连接"。

2 个答案:

答案 0 :(得分:0)

来自yam.platform.logout的回复似乎" false"成功注销后,您可以尝试" if(response == false)"甚至没有if声明..

答案 1 :(得分:0)

我也面临同样的问题。很难相信这个问题在2018年仍然存在!我挖了一点,发现在用户授权应用程序后,Yammer服务器发送一个cookie,存储在某个地方的浏览器中(没有绑定到会话),yam.platform.logout无法删除这个cookie(理想情况下应该!)

但是我发现了一个很好的解决方法,它对我来说很有效。

以下是登录页面中的JS:

$("#yammer-login").click(function(){
        console.log("clicked");

         yam.getLoginStatus(
  function(resp) {
      yam.platform.login(function (response) { //prompt user to login and authorize your app, as necessary
            if (response.authResponse) {
              console.dir(response); //print user information to the console
                alert("login success");
            }
            $.ajax({
            type:"POST",
            url:"/setSession",
            data:JSON.stringify(response,null,'\t'),
            contentType:"application/json;charset=UTF-8",
            success: function(result){
              alert("Result from setSession is: "+result);
              window.location.replace("/login");
            }});

          });

      }
    );
    });

此处#amammer-login是登录元素的ID

<h2 class="sign-in">
          <center>
                 Sign-in With Yammer
                 <br><br>
                 <span id="yammer-login">Click</span>
          </center>
</h2>

这是我的工作流程:

登录页面上的JS向setSession发送POST请求并设置会话。执行window.location.replace("/login");会向我的服务器发送一个GET请求/login url。现在,会话已设置,我的服务器会将此请求重定向到仪表板。点击仪表板上的注销按钮后。我清除所有会话cookie并将其重定向回登录页面。由于会话现在未设置 - 我再次看到登录页面!一切顺利!

因此,下次用户点击#amammer-login DOM元素时 - 会话被设置并且她被重定向到仪表板(这次没有授权应用程序)!

希望这有助于将来像我一样面对这个问题的人!