如何使用OAuth 2

时间:2013-05-04 17:06:58

标签: c# oauth-2.0

我应该有一个简单的应用程序,我需要完成。但是,OAuth 2让我感到困惑。基本上,我需要将文件或文件组上传到BoxDropbox等文件夹以进行备份。

我经历了SharpBox。这似乎超级简单,但我无法编译它。缺少引用或导致其引发错误的内容:

  

无法解析此引用。无法找到   “AssemblyAppLimit.CloudComputing.SharpBox.Net40”。检查以确保   程序集存在于磁盘上。如果您需要此引用   代码。

还有以下错误:

  

找不到类型或命名空间名称“DropBoxCredentials”   (您是否缺少using指令或程序集引用?)

据我所知,没有任何更新。如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您遇到的第一个错误是因为无法找到库“AssemblyAppLimit.CloudComputing.SharpBox.Net40”。确保将其添加到可用文件夹,在项目中引用它,并将其包含在构建中。您收到的第二个错误是因为您没有提供Dropbox OAuth凭据。您必须在发出受保护请求之前对用户进行身份验证我发现这个页面非常有用:http://sharpbox.codeplex.com/wikipage?title=SharpBox%20Developer%20Tutorials&referringTitle=Documentation。第2步详细介绍了如何使用DropBox对OAuth进行授权。

OAuth 2实际上比OAuth 1复杂得多,它只有几个步骤。

  1. 使用外部服务提供的URL生成完整的URL,其中包括您的应用程序唯一使用者密钥,重定向URL以及外部服务所需的任何其他权限/属性。
  2. 将用户重定向到步骤1中生成的URL。他们的外国服务将完成其操作并确认您的应用访问。如果一切顺利,您将获得一个独特的成功令牌。
  3. 向外国服务上的第二个位置发出请求,该位置包含3个组件 - 您的应用的消费者密钥(如用户名),消费者密钥(如密码)以及成功完成后传递给您应用的唯一请求令牌第2步。外国服务采用这三个参数,如果第2步成功,请将一个唯一令牌交给您,该令牌允许您的应用代表此用户发出请求。您应该存储此令牌,因为您需要它来进行后续请求(我喜欢使用用户的外部服务帐户ID存储令牌以更轻松地调用API)。
  4. 我仍然可以提供OAuth2.0的示例,但是我检查了DropBox文档,他们的核心API说它仍然是版本1,由于各种原因它更复杂。在这种情况下,我建议坚持使用可以抽象凌乱细节的第三方专用库。