gpt4 book ai didi

windows-8 - 如果从 Foursquare 传递给 Facebook,WebAuthenticationBroker 会挂起

转载 作者:行者123 更新时间:2023-12-04 05:32:37 25 4
gpt4 key购买 nike

我编写了一个基于 XAML 的 WinRT 应用程序,它通过 WebAuthenticationBroker.AuthenticateAsync 调用连接到foursquare。这是授权代码:

        public async Task<string> FsqAuthenticate()
{
var fsqAuthUrl = string.Format(
"https://foursquare.com/oauth2/authenticate?client_id={0}&response_type=code&redirect_uri={1}&display=webpopup",
ClientId, RedirectUri);
var requestUri = new Uri(fsqAuthUrl, UriKind.RelativeOrAbsolute);
var redirUri = new Uri(RedirectUri, UriKind.RelativeOrAbsolute);
string authCode = string.Empty;
string authToken = string.Empty;

try
{
ResponseErrorMsg = string.Empty;

WebAuthenticationResult WebAuthenticationResult = await WebAuthenticationBroker.AuthenticateAsync(
WebAuthenticationOptions.None,
requestUri, redirUri);

if (WebAuthenticationResult.ResponseStatus == WebAuthenticationStatus.Success)
{

如果用户选择直接通过foursquare 进行身份验证或通过foursquare 注册,则此方法可以正常工作。但是,foursquare OAuth 页面为用户提供了通过 Facebook 登录/注册的选项。如果选中,初始 Facebook 登录屏幕将正确显示;用户可以输入用户名/密码并选择“登录”按钮;然后窗口变为空白。似乎控制权被传递给 Facebook 的弹出窗口,提示授予权限。但是,WebAuthenticationBroker 没有显示这个。出于所有意图和目的,WebAuthenticationBroker 已挂起。

是否存在针对此行为的解决方法?

最佳答案

我终于能够得到微软对这个问题的回应:

Facebook Connect won’t work as it requires communication between multiple pages but the Webauth Broker can only have one active at a time. The issue here is that foursquare launches a popup for facebook authorization and waits for the popup to complete and an event to fire on the first foursquare page. In the case of webauth, we navigate to all popups inline, so the first page that launches the popup will be gone and there is no event that can be sent back to the first page.



结果是,没有解决方法,除了编写自己的登录过程并完全绕过 WebAuthenticationBroker(我最终这样做)。

TL;DR:WebAuthenticationBroker 已损坏,目前没有修复计划。

关于windows-8 - 如果从 Foursquare 传递给 Facebook,WebAuthenticationBroker 会挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12388221/

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