5

我正在尝试将新的 Box 身份验证 API 与 OAuth 一起使用。我想使用我当前使用的盒子帐户的凭据来授权我的应用程序。

OAuth 的配置请求重定向 URI,我不知道必须在那里输入什么。在之前的身份验证方法中,给了以下 URI http://www.box.net/api/1.0/auth/ {ticket},但这是在获得身份验证票后完成的。

我是 OAuth 的新手,所以我的问题可能有点明显......但我想知道如何使用盒子帐户用户的凭据进行身份验证。

我在 Windows 应用程序中执行此操作,因此我还想了解如何显示请求的响应。

4

2 回答 2

2

当我四处寻找有关为桌面创建 Box.net 应用程序的答案时,试图获得登录身份验证所花费的时间比它真正应该拥有的要多......

因此,我决定在我的网站上整理一篇文章,介绍创建可以登录并使用其 SDK 的 C# .Net 4.0 桌面应用程序的过程。这是使用他们新的 OAuth 2.0 登录系统。

首先,我们使用标准 HttpWebRequest 对象发送初始 Web 请求,以获取用于 OAuth 2.0 登录的 UI 网页。Web 响应返回后,我们将其转换为 Stream 以供我们的 Web 浏览器使用。重定向 URI 可以是任何基于 HTTPS 的 URI。

string baseURI = "https://www.box.com/api/oauth2/authorize?";
string responseType = "&response_type=code";
string clientId = "&client_id=YOUR OWN CLIENT ID";
string redirectURI = "&redirect_uri=https://app.box.com/services/poc_connector"; 

var targetUri = new Uri(baseURI + responseType + clientId + redirectURI);
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(targetUri);

要将 Stream 注入 Web 浏览器控件,我们使用 document 属性

webBrowser1.DocumentStream = view;

一旦完成,用户的所有操作都由网络浏览器控件处理。在用户按下“授予访问权限”按钮时捕获身份验证令牌。我们为 web-browsers Navigated 事件添加了一个事件监听器。

private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e)
{
    if (e.Url.AbsolutePath != "blank" && e.Url.ToString().Contains("&code="))
    {
        Token = e.Url.ToString().Substring(e.Url.ToString().IndexOf("&code="));
        Token = Token.Replace("&code=", String.Empty);
        this.Close();
    }
}

链接我的原创文章和源码:link

于 2013-09-07T10:06:32.390 回答
1

OAuth 2 流程的第一步是将用户发送到https://api.box.com/oauth2/authorizeresponse_type 和 client_id 作为请求的参数。重定向 URL 将与您在 V1 中设置的相同。例如,如果您的 client_id 是 123456,您可以将用户定向到

https://api.box.com/oauth2/authorize?response_type=code&client_id=123456

请参阅此处了解更多信息

于 2012-12-15T21:22:08.313 回答