使用WebAuthenticationBroker进行oAuth

本文关键字:oAuth 进行 WebAuthenticationBroker 使用 | 更新日期: 2023-09-27 17:53:27

我想使用WebAuthenticationBroker的oAuth与口袋(http://getpocket.com)。Pocket API的描述见http://getpocket.com/developer/docs/authentication。问题在于重定向uri。在他们的示例中,它被设置为iOS和Android的自定义协议。你如何在WinRT上处理这个问题?

当我提供一个空的重定向uri时它不起作用。当我提供一个像http://www.google.sk这样的uri时,我看到口袋的授权对话框,我授权我的应用程序,我被重定向到http://www.google.sk。但是窗口没有关闭,我只能单击后退按钮,这导致WebAuthenticationResult被取消。

使用WebAuthenticationBroker进行oAuth

WebAuthenticationBroker需要一个Callback URI。如果这个URI在web视图中被调用,主机将结束导航并向代理发送信号——正如MSDN中web身份验证代理工作流中所描述的那样。

您作为POST参数提交的Pocket API redirect_uri应该与WebAuthenticationBroker.GetCurrentApplicationCallbackUri相同。

你可以指定它作为第三个参数:

WebAuthenticationBroker.AuthenticateAsync(options, requestUri, callbackUri)

顺便说一下:
如果您需要一个简单的Pocket API包装器,我已经为c#构建了一个名为PocketSharp

的包装器。

我相信答案是,你必须使你的重定向URI ms-app://WebAuthenticationBroker工作。