【问题标题】:How can I logout from Facebook or clear cookies on WebAuthenticationBroker?如何从 Facebook 注销或清除 WebAuthenticationBroker 上的 cookie?
【发布时间】:2015-04-15 11:27:22
【问题描述】:

【问题讨论】:

  • 请添加有关您所看到的错误行为的详细信息。解释为什么您认为代码和这些链接不起作用。你遇到了什么错误(如果有的话)。
  • 当我一直调用这个网址时,facebook 重定向到 facebook.com/home.php 。但我希望重定向登录页面

标签: c# facebook windows-8 logout


【解决方案1】:

根据您提供的有限信息,有几件事: 通过尝试使用 Web 身份验证代理完成干净的注销,您第二次尝试的 url 更接近标记,但是它有一些问题:

开头是正确的:"https://www.facebook.com/logout.php?"

在查询字符串上作为参数传递的注销重定向 url [next] 其中包含:“login_success.html” 需要进行 url 编码。 (否则你会被重定向到主页,这就是你的发现)

我认为这是正确的访问令牌。

当您调用它时,您最终会出现在空白页面上,上面会显示“成功”字样,以及来自 Facebook 的快乐警告消息,您应该小心在查询字符串上传递访问令牌。

但这不是问题,因为最终用户无法访问这些数据。使用 Web 身份验证代理时。

在修复 url 编码之后,您将遇到的下一个问题是,用户被留在这个丑陋的页面上,并带有 Facebook 安全警告消息,用户必须点击设备上的返回导航按钮才能返回到应用程序,这并不理想,Facebook 警告页面也没有告诉最终用户这样做。

因此,为了应对这种状态,Web 身份验证代理作为触发注销请求和检测回调状态的不同方法。

所以最好给你看一些代码:)

    _logoutUrl = FBClient.GetLogoutUrl(new
        {
            next = "https://www.facebook.com/connect/login_success.html",
            access_token = //your access token (string)
        });

        var url = new Uri("https://www.facebook.com/connect");

            WebAuthenticationBroker.AuthenticateAndContinue(_logoutUrl, url);

你会看到我使用了 WebAuthenticationBroker.AuthenticateAndContinue 而不是 AuthenticateAsync 这是因为通过身份验证和继续,这允许我们提供方法,在后台使用第二个 uri / url,在时尚,如果身份验证过程产生的 url(以 / 开头)是我们提供的第二个 url,那么这就是指示符,自动将响应拉回我们的应用程序。

所以对于上面的代码,wab(Web 身份验证代理的缩写)将启动它的内部 Web 视图控件并导航到 Facebook 注销 url,如您所知,当注销完成时,它将重定向 web 视图到 url: 包含“login_success.html”,第二个发生的 (wab) 将检测到作为第二个参数https://www.facebook.com/connect 提供的我们的 url 是其中的一部分并返回到应用程序。并且 Facebook 身份验证令牌/cookie 将被清除。

【讨论】:

    猜你喜欢
    • 2015-06-11
    • 2017-12-03
    • 2015-12-26
    • 2015-11-13
    • 2013-10-26
    • 1970-01-01
    • 1970-01-01
    • 2019-07-31
    • 2016-09-09
    相关资源
    最近更新 更多