我正在尝试将新的Box身份验证API与OAuth结合使用。我想使用我当前使用的邮箱帐户的凭据来授权我的应用程序。
OAuth的配置请求重定向URI,但我不知道必须在其中输入什么。在前面的身份验证方法中,向以下URI提供了票证{http://www.box.net/api/1.0/auth/},但这是在获得身份验证票证之后完成的。
我是OAuth的新手,所以我的问题可能有点显而易见……但我想知道如何使用box帐户用户的凭据进行身份验证。
我在Windows应用程序中执行此操作,因此我还想了解如何显示来自请求的响应。
发布于 2013-09-07 18:06:32
当我在搜索有关为桌面创建Box.net应用程序的答案时,试图获得登录身份验证所花费的时间比它实际应该花费的时间更多……
因此,我决定在我的网站上写一篇文章,讲述创建一个C# .Net 4.0桌面应用程序的过程,该应用程序可以登录并使用他们的SDK。这使用的是他们新的OAuth 2.0登录系统。
首先,我们使用标准HttpWebRequest对象发送初始web请求,以获取用于OAuth 2.0登录的UI网页。返回web响应后,我们将其转换为供web浏览器使用的Stream。重定向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浏览器控件处理。以在用户按下“授予访问”按钮时捕获身份验证令牌。我们为web浏览器导航事件添加一个事件侦听器。
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
发布于 2012-12-16 05:22:08
OAuth 2流程的第一步是将用户发送到https://api.box.com/oauth2/authorize,并将response_type和client_id作为请求的参数。重定向地址将与您在V1中设置的地址相同。例如,如果您的client_id为123456,则可以将用户定向到
https://api.box.com/oauth2/authorize?response_type=code&client_id=123456See here for more info。
https://stackoverflow.com/questions/13890485
复制相似问题