gpt4 book ai didi

c# - 如何从 Facebook 注销或清除 WebAuthenticationBroker 上的 cookie?

转载 作者:行者123 更新时间:2023-11-30 12:44:26 29 4
gpt4 key购买 nike

最佳答案

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

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

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

我假设这是正确的访问 token 。

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

但这不是问题,因为最终用户无法访问该数据。使用 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 View 控件并导航到 Facebook 注销 url,如您所知,当注销完成时它将重定向 webview到 url:包含“login_success.html”,发生的第二个 (wab) 将检测到我们作为第二个参数提供的 url https://www.facebook.com/connect是其中的一部分,然后返回到应用程序。 Facebook 身份验证 token /cookie 将被清除。

关于c# - 如何从 Facebook 注销或清除 WebAuthenticationBroker 上的 cookie?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28516242/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com