【问题标题】:The session is invalid because the user logged out会话无效,因为用户已注销
【发布时间】:2012-03-14 18:43:30
【问题描述】:

我这里有一个情况,我还在想如何解决它。

场景如下:

  1. 用户访问我的网站

  2. 用户点击登录 FB(以便我的应用通过 Api 图检索他的 FB 信息)。

  3. 用户使用其 FB 凭据登录并批准应用程序。

  4. 用户被重定向回他单击登录 FB 按钮的同一页面(在步骤 2 中,因为该按钮将调用方法 RedirectToFacebookAuthorization() )。

  5. 然后用户从 Facebook.com 注销(我的网站没有针对这种情况实现任何注销按钮)。

  6. 用户已成功退出其 FB 帐户,他重新访问了我的网站。

  7. 我的网站抛出异常消息如下:

异常详细信息:Facebook.Utility.FacebookException:会话无效,因为用户已注销。

【问题讨论】:

    标签: c# javascript .net facebook api


    【解决方案1】:

    如果你有一个异常,并且你知道它为什么被抛出。唯一的方法是在您的代码中处理它,同时在您的站点中注销用户。

    尝试搜索检查此错误的一些变体,例如this

    if(ex.Message == "The session is invalid because the user logged out") 
    {
        //timeout caused by user logging out of FB (auth token remains in qstring) 
        Session.Remove("Facebook_session_key"); 
        Session.Remove("Facebook_userId");
        Session.Remove("Facebook_session_expires");
    
        //redirect to login
        Response.Redirect(@"http://www.Facebook.com/login.php?api_key=" + fbService.ApplicationKey + @"&v=1.0\");
    }
    

    您还应该检查exceptionErrorType 属性:

    /// <summary>
    /// A value representing the specific type of error returned by Facebook.
    /// </summary>
    public enum ErrorType
    {
        ///<summary>
        ///</summary>
        Unknown = 1,
        ///<summary>
        ///</summary>
        ServiceUnavailable = 2,
        ///<summary>
        ///</summary>
        RequestLimit = 4,
        ///<summary>
        ///</summary>
        Timeout = 102,
        ///<summary>
        ///</summary>
        Signing = 104,
        ///<summary>
        ///</summary>
        InvalidUser = 110,
        ///<summary>
        ///</summary>
        InvalidAlbum = 120,
        ///<summary>
        ///</summary>
        UserNotVisible = 210,
        ///<summary>
        ///</summary>
        AlbumNotVisible = 220,
        ///<summary>
        ///</summary>
        PhotoNotVIsible = 221,
        ///<summary>
        ///</summary>
        InvaldFQLSyntax = 601
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-04
      • 2013-10-22
      • 2015-08-14
      • 2012-01-21
      • 2012-01-24
      • 2011-10-09
      • 2021-03-09
      相关资源
      最近更新 更多