WebAuthenticationResult webAuthenticationResult = await WebAuthenticationbroker.AuthenticateAsync(WebAuthenticationoptions.None,new Uri(logoutUrl));
我的错是什么?我必须在developer.facebook.com中设置任何设置?
解决方法
尝试使用Web身份验证代理完成干净注销时,您的第二个已尝试的URL更接近标记,但它存在一些问题:
开始是正确的:“https://www.facebook.com/logout.php?”
logout重定向url作为参数传递给查询字符串[next]
其中包含:“login_success.html”
需要进行网址编码.
(另一方面,你被重定向到主页,这是你的发现)
访问令牌我认为这是正确的.
当你打电话给它时,你最终会在空白页面上显示成功字样,以及来自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这是因为通过authenticate和continue,这允许我们提供方法,以及在引擎盖下使用的第二个uri / url,如果身份验证过程结果,在一个url(以/ contains开头),我们提供的第二个url,然后这是指示器,自动将响应拉回我们的应用程序.
因此,对于上面的代码,wab(Web身份验证代理的简称)将启动它的内部Web视图控件并导航到Facebook注销URL,如您所知,并且当注销完成时,它会将webview重定向到URL :包含“login_success.html”,第二个发生的(wab)将检测到我们作为第二个参数https://www.facebook.com/connect提供的url是其中的一部分并返回给应用程序. Facebook auth令牌/ cookie将被清除.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。