使用WebAuthenticationBroker进行oAuth

时间:2013-01-16 09:37:34

标签: c# windows-8 oauth microsoft-metro

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

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

WebAuthenticationBroker需要一个回调URI。如果在Web视图中调用此URI,主机将结束导航并向代理发送信号 - 如web authentication broker workflow at MSDN中所述。

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

您可以将其指定为:

中的第三个参数
WebAuthenticationBroker.AuthenticateAsync(options, requestUri, callbackUri)

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